Rechercher : dans
Par :

Commande set

Dernière réponse le 24 aoû 2005 à 18:41:22 lok, le 24 aoû 2005 à 14:45:49 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « commande set » dans :
Bash - Les paramètres Voir Introduction Les paramètres positionnels Exemple 1 Les paramètres spéciaux Exemple 2 Initialiser des paramètres - La commande "set" - Exemples - La commande "shift" - Exemple 3 Introduction Il est possible de fournir à un script,...
Limite d’affichage de Serveroutput VoirServeroutput présente une limite d’affichage qui est définie par défaut à 1000 enregistrements mais qui peut être modifiée par la commande set serveroutput on size XXX, néanmoins elle ne pourra pas dépasser les 3000 enregistrements. Pour palier à...
Gestion des paramètres SQL VoirSQL présente un certain nombre de paramètres au niveau d'Oracle qu'il est possible de visualiser à travers la commande : SHOW ALL Pour modifier la valeur d'un paramètre il suffit d'utiliser la commande : SET NOM_PARAM VALEUR
[Windows] Changer l'adresse IP en ligne de commande avec Netsh VoirSous les systèmes Windows 2000/Windows XP et supérieurs, il est possible de modifier les paramètres TCP/IP à partir d'une simple ligne de commande, afin par exemple d'automatiser cette tâche grâce à un script. Ceci est possible grâce à l'outil...
Télécharger Atelier Web Remote Commander VoirSi vous vous souciez de la maintenance et de l’optimisation de votre ordinateur, même quand vous n’êtes devant, utilisez des programmes de commande à distance. Atelier Web Remote Commander (AWRC) est un outil puissants conçu pour la...
Commandes Linux VoirTableau des principales commandes Linux Commande Description équivalent DOS ls liste le contenu d'un répertoire dir cd change de répertoire cd cd .. répertoire parent cd.. mkdir crée un nouveau...
Commandes UNIX VoirTableau des principales commandes UNIX Commande Unix Description Options ls liste le contenu d'un répertoire -a Affiche tous les fichiers, y compris les fichiers cachés ...
Attaques par injection de commandes SQL VoirInjection de commandes SQL Les attaques par injection de commandes SQL sont des attaques visant les sites web s'appuyant sur des bases de données relationnelles. Dans ce type de sites, des paramètres sont passés à la base de données sous forme...

1

sarag, le 24 aoû 2005 à 16:52:00

Salut,

tjrs pas de reponse? :(

Répondre à sarag

2

jipicy, le 24 aoû 2005 à 17:11:27

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"
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 

Répondre à jipicy

3

sarag, le 24 aoû 2005 à 17:25:40

Salut,

avec des commaneds tapes au prompt comme tu m'as montre, ca marche , mais dans un fichier comme le suivant:

#! /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`"
echo $PRJHOME


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



ca marche pas!!!!!!
je sais pas pk?

Répondre à sarag

4

sarag, le 24 aoû 2005 à 17:30:13

J'ai meme essaye avec ce petit ewemple:

#! /bin/sh
set moi=bonsoir
echo $moi

mais ca ne marche pas
est ce que tu conais d'ou viens l'erreur?

Merci d'avance

Répondre à sarag

5

jipicy, le 24 aoû 2005 à 17:34:56

Je t'ai dit la commande set sert à positionner des paramètres. Vires là !!!

[jp@Mandrake tmpfs]$ cat script.sh
#! /bin/sh
moi=bonsoir
echo $moi

[jp@Mandrake tmpfs]$ sh script.sh
bonsoir
[jp@Mandrake tmpfs]$
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 

Répondre à jipicy

6

sarag, le 24 aoû 2005 à 17:51:00

Mais moi je veux que la variable $moi soit connu non a l'interieur du script seulemet mais aussi ailleurs (exactement comme une vaiable d'environnement : $path, $user, .........)
c'est pour cela que j'ai utilise set

Répondre à sarag

7

kinder.surprise, le 24 aoû 2005 à 18:09:12

Alors là tu peux faire définitivement une croix dessus

une variable définie dans un sous-shell n'est jamais connue par le shell parent, y a aucun moyen

si tu veux qu'elle soit connue dans le shell parent, au lieu d'exécuter ton fichier tu dois le sourcer dans le shell parent

càd si ton script s'appelle torgnole tu fais

. torgnole

au lieu de

./torgnole ou torgnole
gnagnagna

Répondre à kinder.surprise

8

kinder.surprise, le 24 aoû 2005 à 18:15:34

J'ajoute que non seulement il faudra le sourcer mais en plus, il faudra utiliser export

par ailleurs la variable ne sera définie QUE dans le shell où tu sources le fichier

mettons que tu ouvres deux shells (dans deux vt) et que tu sources le fichier dans un des deux, la variable ne sera pas définie dans l'autre pour autant
gnagnagna

Répondre à kinder.surprise

9

sarag, le 24 aoû 2005 à 18:29:32

J'ai utilise export mais ca n'a pa marche,
j'ai fait:
export nom=valeur

mais ca n'a pas marche, il me donne l'erreur suivante:
nom=valeur: is not an identifier


je sais pas comment je dois faire pour resoudre ce probleme

Répondre à sarag

10

jipicy, le 24 aoû 2005 à 18:33:54

En shell Bourne il n'est pas possible d'initialiser une variable dans la commande "export", il faut procéder en deux temps :

variable=valeur
export variable
;-) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 

Répondre à jipicy

11

sarag, le 24 aoû 2005 à 18:40:30

Est ce la meme change qu'on sh ou le tcsh?

Répondre à sarag

12

 sarag, le 24 aoû 2005 à 18:41:22

Je voulais dire: est ce la meme chose qu'on sh ou le tcsh?

Merci

Répondre à sarag