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 03/07/2007, 12h37   #1
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
Par défaut protéger le contenu d'une variable

Bonjour

Je développe actuellement un script shell pour la mise à jour des ports sous FreeBSD dont voici un extrait :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
daily_ports_update_enable="YES"

date=`date +%d/%m/%Y`

if [ ! -x /usr/local/bin/fastest_cvsup ]
then
        echo '-> ${date} - $daily_ports_update_enable is set but' \
        "/usr/local/bin/fastest_cvsup isn't executable." \
        >> $daily_ports_update_logdir
        exit 0
else
        server=`/usr/local/bin/fastest_cvsup -Qc \
        $daily_ports_update_country`
fi
Lorsque j'exécute le code, le contenu de mon fichier de log est le suivant:
Code :
1
2
 
${date} - $daily_ports_update_enable is set but /usr/local/bin/fastest_cvsup isn't executable.
Maintenant si je change la ligne suivante:
Code :
1
2
3
echo "-> ${date} - $daily_ports_update_enable is set but" \
"/usr/local/bin/fastest_cvsup isn't executable."
J'obtiens le log suivant:
Code :
1
2
-> 03/07/2007 - YES is set but /usr/local/bin/fastest_cvsup isn't executable.
Je souhaite obtenir comme résultat:
Code :
-> 03/07/2007 - $daily_ports_update_enable is set but /usr/local/bin/fastest_cvsup isn't executable.
Je ne vois pas du tout comment faire

Avez-vous des idées ?

Merki
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 13h22   #2
Rédacteur
 
Avatar de Arnaud F.
 
Homme Arnaud Feltz
Développeur .NET
Inscription : août 2005
Messages : 5 204
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Feltz
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : août 2005
Messages : 5 204
Points : 6 113
Points : 6 113
Ben faut mettre tes " seulement, pour la variable dont il ne doit pas interpréter le contenu, tu la banalise, et pour ça, tu rajoute le \ avant le $, ce qui donne :

Code :
 echo "-> ${date} - \$daily_ports_update_enable is set but"
++
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

Installation de Code::Blocks sous Debian à partir de Nightly Builds
Arnaud F. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 14h52   #3
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
Citation:
Envoyé par buchs
Code :
 echo "-> ${date} - \$daily_ports_update_enable is set but"
Tu as raison, je n'ai même pas pensé à cette solution

Merki
__________________
.Olivier
Olivier Regnier 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 21h09.


 
 
 
 
Partenaires

Hébergement Web