OVH Cloud OVH Cloud

[SHELL] lancement d'un script

3 réponses
Avatar
michael p
merci pour les reponses mais je dois faire qq chose de faux car ca ne marche
pas.

voici mon shell :

#!/bin/sh

if [$# != 1]
then
echo "USAGE : appro.sh repertoireduPackage"
exit 1
else
echo Load parameter
sed -e "/^option bootfile-name/c \option
bootfile-name\"/tftpboot/$1/st2030s.txt\";" /etc/dhcp3/dhcpd.conf > tmp.conf

mv tmp.conf /etc/dhcp3/dhcpd.conf

echo Restart DHCP
/etc/init.d/dhcp3-server restart

fi


je peux qd meme le lancer meme s'il n'y a pas d'argument derriere et il
marche alors que je souhaiterai que si il y a un espace ou rien ca m'affiche
le message...

comment dire que s'il y a un espace ca doit m'afficher le message?


de plus j'ai un autre probleme:

j'ai mis ce script ds un repertoire /mbin qui se trouve sur mon /home/mike
j'ai mis le mbin dans la variable ~/.bashrc pour le rendre utilisable de
tous les repertoires avec : export=PATH=$PATH:/home/mike/mbin

or qd je tente de le lancer via un autre repertoire que le /mbin
j'ai le message suivant:

Load parameter
sed: can't read dhcpd.conf: No such file or directory

je ne comprends pas pourquoi ca ne marche pas...



--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

3 réponses

Avatar
Jean-Damien Durand
On Monday, 6 March 2006 14:58, michael p wrote:
if [$# != 1]



Essaie avec:

if [ $# -ne 1 ]

c-a-d:
- ne pas oublier de rajouter des espaces [ici...ici]
- normalement c'est un entier, pas une chaine de caracteres

j'ai mis ce script ds un repertoire /mbin qui se trouve sur mon /home/mike
j'ai mis le mbin dans la variable ~/.bashrc pour le rendre utilisable de
tous les repertoires avec : export=PATH=$PATH:/home/mike/mbin



Essaie avec:

PATH=${PATH}:/home/mike/mbin; export PATH

A+, JD.


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Hervé Hounzandji
michael p a écrit :

merci pour les reponses mais je dois faire qq chose de faux car ca ne
marche pas.

voici mon shell :

#!/bin/sh

if [$# != 1]
then
echo "USAGE : appro.sh repertoireduPackage"
exit 1
else
echo Load parameter
sed -e "/^option bootfile-name/c option
bootfile-name"/tftpboot/$1/st2030s.txt";" /etc/dhcp3/dhcpd.conf >
tmp.conf

mv tmp.conf /etc/dhcp3/dhcpd.conf

echo Restart DHCP
/etc/init.d/dhcp3-server restart

fi


je peux qd meme le lancer meme s'il n'y a pas d'argument derriere et
il marche alors que je souhaiterai que si il y a un espace ou rien ca
m'affiche le message...

comment dire que s'il y a un espace ca doit m'afficher le message?


de plus j'ai un autre probleme:

j'ai mis ce script ds un repertoire /mbin qui se trouve sur mon
/home/mike
j'ai mis le mbin dans la variable ~/.bashrc pour le rendre utilisable
de tous les repertoires avec : export=PATH=$PATH:/home/mike/mbin

or qd je tente de le lancer via un autre repertoire que le /mbin
j'ai le message suivant:

Load parameter
sed: can't read dhcpd.conf: No such file or directory

je ne comprends pas pourquoi ca ne marche pas...





J'ai pris ton script sur une machine chez moi : comme tu le vois, je
l'ai appelé tester. ce qui ne change rien. J'ai juste mis un espace
entre [ et $ d'une part et entre 1 et ] d'autre part sinon erreur
syntaxique. J'ai donné les droits d'exécution au fichier et à
l'exécution j'obtiens

./tester
USAGE : tester repertoireduPackage

Donc revois d'abord ça stp.

#!/bin/sh

if [ $# != 1 ]
then
echo "USAGE : tester repertoireduPackage"
exit 1
else
echo Load parameter
sed -e "/^option bootfile-name/c option
bootfile-name"/tftpboot/$1/st2030s.txt";" /etc/dhcp3/dhcpd.conf > tmp.conf

mv tmp.conf /etc/dhcp3/dhcpd.conf

echo Restart DHCP
/etc/init.d/dhcp3-server restart

fi

--
Hervé Hounzandji
Dsi-Dae - Rectorat Nancy-Metz
tél : 03 83 86 27 66
www.ac-nancy-metz.fr
----------------------------------------------
"Prenez soin de Vous. Chaque jour est une Vie"



--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
David Soulayrol
Bonjour,

Jean-Damien Durand a écrit :
On Monday, 6 March 2006 14:58, michael p wrote:

if [$# != 1]




Essaie avec:

if [ $# -ne 1 ]

c-a-d:
- ne pas oublier de rajouter des espaces [ici...ici]
- normalement c'est un entier, pas une chaine de caracteres



J'ajouterais :

if [ "$#" -ne "1" ]

Une habitude à prendre afin d'éviter les erreur dans le cas où $#
renverrait une chaine vide (je ne sais pas si ça peut se produire ici,
mais ça peut arriver avec d'autres variables).

Certains écrivent même

if [ "x$VARIABLE" -ne "xVALEUR" ]

Je ne sais pas si ça apporte quelque chose.


j'ai mis ce script ds un repertoire /mbin qui se trouve sur mon /home/m ike
j'ai mis le mbin dans la variable ~/.bashrc pour le rendre utilisable d e
tous les repertoires avec : export=PATH=$PATH:/home/mike/mbin




Essaie avec:

PATH=${PATH}:/home/mike/mbin; export PATH

A+, JD.





--
David