Commande set

Fermé
lok - 24 août 2005 à 14:45
 tisc0 - 15 avril 2014 à 09:44
salut,

j'ai utilise la commande set dans un script, la partie du script est la suivante:

#! /bin/sh
#

if [ -f /home/prj/itsec/.prjrc ]; then
echo " ftlog ftflag local-user site file"
else
echo "non trouve"

fi


set PRJHOME = `echo $PWD | cut -d / -f 4-5`
#set PRJHOME = `echo $PWD | awk -F / '{ print "/"$4"/"$5 }'`
echo $PRJHOME
#x = `echo "/"$PRJHOME1`
#echo $x

set PRJNAME = `grep "NAME" /home/gmira/*/.prjrc | cut -f2 -d=`
echo $PRJNAME

mais lorseque j'execute le script, j'obtient rien dans le echo
ect ce que quelqu'un peut m'aider
Merci
A voir également:

10 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
24 août 2005 à 17:11
Salut,

La commande "set" en shell "sh" du moins sert à positionner des paramètres et non pas à initialiser des paramètres :
[jp@Mandrake tmpfs]$ set moi = bonsoir
[jp@Mandrake tmpfs]$ echo $*
moi = bonsoir
[jp@Mandrake tmpfs]$ echo $2
=
[jp@Mandrake tmpfs]$ echo $3
bonsoir
[jp@Mandrake tmpfs]$
De plus pour initialiser une variable il ne faut pas d'espace entre le nom de ta variable, le signe égale et la valeur de ta variable :
[jp@Mandrake tmpfs]$ set moi = bonsoir
[jp@Mandrake tmpfs]$ echo $moi

[jp@Mandrake tmpfs]$ moi=bonsoir
[jp@Mandrake tmpfs]$ echo $moi
bonsoir
[jp@Mandrake tmpfs]$
Pour initialiser tes variables suffit de donner leur nom suivi du signe égale et de sa valeur sans espaces, et éventuellement entre guillemets si la valeur contient des espaces ou des caractères spéciaux :
VAR="Ceci est une variable"
8