Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/03/2008, 11h27   #1
Membre confirmé
 
Inscription : septembre 2005
Messages : 724
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 724
Points : 267
Points : 267
Par défaut [bash] Construire une variable texte avec retours chariot

Bonjour à tous,

Je m'arrache les cheveux avec un script de backup que je n'arrive pas à finaliser

Ce que je veux faire est simple : déclarer une variable en début de script, (cette variable sera le corps du mail envoyé à la fin de l'execution du script) puis au fur et à mesure des actions, incrémenter cette variable par des lignes de texte pour logguer le déroulement du backup.

Donc voici le genre d'erreurs que j'ai :
Citation:
./essai.sh: line 6: let: teste. à quelle heure ?: syntax error: invalid arithmetic operator (error token is ". à quelle heure ?")
avec ce simple test (je l'ai isolé du script de backup pour être sur)

Code :
1
2
3
4
5
6
7
8
 
#!/bin/bash
 
MAVAR="je teste"
 
let MAVAR="$MAVAR à quelle heure ?"
 
echo $MAVAR
Bref j'ai beau chercher sur le net, je ne trouve rien qui m'aide vraiment...

Merci d'avance pour votre aide !
__________________
eZ Publish certified developer
http://www.webaxis.fr
vallica est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 11h40   #2
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102
met un \n

Code :
1
2
3
4
5
$ MAVAR='coucou\ntoi'
$echo $MAVAR
coucou
toi
$
Et met des simple quote si t'as des caractères spéciaux !

ps : je ne connais pas ta version de bash mais dans le doute, fait plutot des echo -e pour interpréter le \n si ça marche pas
sinon encore plus simple rajoute alias echo='echo -e' dans le début de ton script (juste après le #!/bin/bash) au lieu de mettre partout echo -e $var
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 11h52   #3
Membre confirmé
 
Inscription : septembre 2005
Messages : 724
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 724
Points : 267
Points : 267
Salut,

Merci pour cette réponse rapide, mais ce que je cherche avant tout c'est à construire la variable sur en plusieurs lignes/etapes.

Il me faut donc concaténer une nouvelle ligne à ma variable d'origine à chaque fois et c'est ca qui semble poser problème...
__________________
eZ Publish certified developer
http://www.webaxis.fr
vallica est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 12h10   #4
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 779
Points : 7 779
Citation:
Envoyé par vallica Voir le message
Bonjour à tous,

Je m'arrache les cheveux avec un script de backup que je n'arrive pas à finaliser

Ce que je veux faire est simple : déclarer une variable en début de script, (cette variable sera le corps du mail envoyé à la fin de l'execution du script) puis au fur et à mesure des actions, incrémenter cette variable par des lignes de texte pour logguer le déroulement du backup.
quelle prise de tete inutile :

exemple plus simple pour faire la meme chose

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
(
actions
actions
actions
) > $FIC_LOG
 
#[...]
 
mailx $destinataire << EOF > /dev/null
~s Compte rendu ($choix_societe) depuis le $date_jour
~<! cat $FIC_LOG
~.
EOF
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 12h11   #5
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102
Je vois pas ou est le pb ?
Code :
1
2
3
4
5
6
7
8
$ var='toto'
$ echo $var
toto
$ var=$var'\ntata'
$ echo $var
toto
tata
$
c'est ça ?
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2008, 12h46   #6
Membre confirmé
 
Inscription : septembre 2005
Messages : 724
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 724
Points : 267
Points : 267
Citation:
Envoyé par SnakemaN Voir le message
Je vois pas ou est le pb ?
Code :
1
2
3
4
5
6
7
8
$ var='toto'
$ echo $var
toto
$ var=$var'\ntata'
$ echo $var
toto
tata
$
c'est ça ?
Oui, merci beaucoup, en fait j'utilisais mal les double quotes et même en tatonnant je ne suis pas tombé sur ta syntaxe qui est la bonne.
__________________
eZ Publish certified developer
http://www.webaxis.fr
vallica est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h41.


 
 
 
 
Partenaires

Hébergement Web