Commande différence entre "./" et "sh" ( resolue ) - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 28-04-2005 à 16:43:21
par hasard, il ne faut pas rajouter #!/bin/sh au début du script?
Marsh Posté le 28-04-2005 à 17:16:59
elpoulpo a écrit : par hasard, il ne faut pas rajouter #!/bin/sh au début du script? |
Oui c'est mieux, il plante dans les 2 cas désormais.
Marsh Posté le 28-04-2005 à 17:58:01
A mon avis, to script est un script bash et dans ta distribution, /bin/sh ne peut pas utiliser les fonctionalités de syntaxe avancées de bash
execute donc ce script par "bash Nomduchemin/NomduScript" ou met comme première ligne, #!/bin/bash et execute le en ./NomduScript ( ou mieux, fait les 2 )
Marsh Posté le 29-04-2005 à 09:00:22
Kristoph a écrit : A mon avis, to script est un script bash et dans ta distribution, /bin/sh ne peut pas utiliser les fonctionalités de syntaxe avancées de bash |
Merci merci
"bash Nomduchemin/NomduScript" , çà marche, c'est exactement ce qu'il me fallait.
il suffisait de remplacer ma sh par bash, vous êtes géniaux.
Je savais bien que je pouvais avoir ma solution ici.
Marsh Posté le 29-04-2005 à 11:20:09
Par contre, si ton script est destiné à être utilisé sur plusieurs machine differentes, essaye de le rendre plus "portable" en le rendant fonctionnel avec sh (par exemple, en n'utilisant pas des fonctions spécifiques à bash). Bash n'est pas toujours installé (bon ok, c'est rare... )
Marsh Posté le 02-05-2005 à 13:33:03
sebchap a écrit : Par contre, si ton script est destiné à être utilisé sur plusieurs machine differentes, essaye de le rendre plus "portable" en le rendant fonctionnel avec sh (par exemple, en n'utilisant pas des fonctions spécifiques à bash). Bash n'est pas toujours installé (bon ok, c'est rare... ) |
Bien vu, c'est pour cette raison que j'ai du la modifié ce matin.
Et puis comme cà je respecte les normes de la société.
Ouf, j'en ai terminé, ça fait du bien.
Marsh Posté le 28-04-2005 à 16:29:35
Bonjour,
Encore merci à ceux qui m'ont aider pour mon problème précédent.
Mais voilà un nouveaux souci.
Lorsque j'appelle mon script shell dont voici le code :
Il lit le paramètre fourni en entrée ( une liste de fichier séparés par de "|" ) et vérifie leur présence.
#--------------------------------------------------------------------------------
FICHIER_SUR_HOST_SRC="$1"
if [ $# = 1 ] ;
then
VarTmpFichier= ${1//[!|]}
VarNbFichier=${#VarTmpFichier}
VarNbFichier=`expr ${VarNbFichier} + 2`
cptfile=1
while [ $cptfile -lt $VarNbFichier ];
do
FICHIER_SUR_HOST_SRC_TMP=`expr $FICHIER_SUR_HOST_SRC|cut -f$cptfile -d "|"`
echo $FICHIER_SUR_HOST_SRC_TMP
if [ ! -f $FICHIER_SUR_HOST_SRC_TMP ] ; then
echo "KO BOUCLE"
else
echo "OK BOUCLE"
cptfile=`expr ${cptfile} + 1`
fi
done
else
echo "ERREUR PARAM"
fi
#--------------------------------------------------------------------------------
J'ai un souci, lorsque je l'appelle en sh Nomduchemin/NomduScript, j'ai l'erreur bad susbtitution.
Après recherche, j'ai remarque que si je le lance en "./NomduScript en me plaçant directement, il fonctionne.
Quel est le problème ?
Et comment est il possible de le lancher avec "sh" sans qu'il me fasse l'erreur
Merci d'avance.
Message édité par claudic le 29-04-2005 à 09:00:46
---------------
--------------------------------------------