Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1557 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Commande différence entre "./" et "sh" ( resolue )

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Commande différence entre "./" et "sh" ( resolue )

n°669584
claudic
Ce n'est qu'un faut breton.
Posté le 28-04-2005 à 16:29:35  profilanswer
 

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

---------------
--------------------------------------------
mood
Publicité
Posté le 28-04-2005 à 16:29:35  profilanswer
 

n°669598
elpoulpo
nickel
Posté le 28-04-2005 à 16:43:21  profilanswer
 

par hasard, il ne faut pas rajouter #!/bin/sh au début du script?

n°669607
claudic
Ce n'est qu'un faut breton.
Posté le 28-04-2005 à 17:16:59  profilanswer
 

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.


---------------
--------------------------------------------
n°669631
Kristoph
Posté le 28-04-2005 à 17:58:01  profilanswer
 

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 )

n°669823
claudic
Ce n'est qu'un faut breton.
Posté le 29-04-2005 à 09:00:22  profilanswer
 

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
 
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 )


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.


---------------
--------------------------------------------
n°669909
sebchap
Share the knowledge
Posté le 29-04-2005 à 11:20:09  profilanswer
 

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... :D)


---------------
BOFH excuse #400:We are Microsoft.  What you are experiencing is not a problem; it is an undocumented feature.
n°671260
claudic
Ce n'est qu'un faut breton.
Posté le 02-05-2005 à 13:33:03  profilanswer
 

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... :D)


 
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.


---------------
--------------------------------------------

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Commande différence entre "./" et "sh" ( resolue )

 

Sujets relatifs
[rar] pb commande updateQuestion commande Unix ( Résolue )
CUPS et ligne de commandeLa différence entre Linux et Mandriva (Mandrake) Linux?
La commande TOPCommande surment trés simple ( cut )
commande Unix[debian] c'est quoi déja la commande pour ...
Prog de recherche sur usenet ( en ligne de commande ) 
Plus de sujets relatifs à : Commande différence entre "./" et "sh" ( resolue )


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR