![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Applications Questions sur l'utilisation d'applications, du shell, et des interfaces graphiques (KDE, Gnome, XFCE... ) |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre à l'essai
![]() Date d'inscription: février 2004
Messages: 46
|
Bonjour,
Je suis en Red Hat 9 j'ai écrit un petit script : #!/bin/ksh #set -x # ====================================================== # declaration des variables et des fonction du shell # ====================================================== # fonction qui supprime le retour chariot function majInternet_initialisation() { local l_chemin=/var/www/html/Imports local l_retcode=0 local l_listeFichier="" cd $l_chemin # Recupération de tous les fichiers commencant par majnet et finissant par txt l_listeFichier=`ls $l_chemin/majnet*.txt` tar -cvf majnet.tar $l_listeFichier return $l_retcode } # ====================================================== # Execution du shell # ====================================================== echo "La vie est belle" majInternet_initialisation et j'ai les messages d'erreurs suivant: /majInternet.sh: line 25: syntax error near unexpected token `{ '/majInternet.sh: line 25: `function majInternet_initialisation() { J'ai du mal à comprendre pourquoi il ne reconnait pas la déclaration de ma fonction. le /bin/ksh, existe bien sur ma machine. En faite sous ma machine les définiftions de fonction ne semble pas reconnue. Rajout de message le 12 août 2008: Pour être plus concis : j'ai un script shell qui contient les ligne suivantes : #!/bin/ksh echo "Le shell est : $SHELL" echo "Fin Traitement" Lorsque je fais la ligne de commande suivante : # test.ksh J'ai le resultat suivant : Le shell est : /bin/bash Fin Traitement Lorsque je fais la ligne de commande suivante : # ksh test.ksh J'ai le resultat suivant : Le shell est : /bin/bash Fin Traitement Finalement c'est toujours le /bin/bash qui s'execute et pas le /bin/ksh, ce qui pour moi est embêtant. Est ce que quelqu'un aurait une idée ? Merci par avance. Dernière modification par Staron ; 12/08/2008 à 17h11 |
|
|
|
|
|
#2 (permalink) |
![]() Date d'inscription: mai 2004
Localisation: Grenoble
Âge: 28
Messages: 2 644
|
Bonjour,
$SHELL contient le nom du shell par défaut de l'utilisateur, pas le nom du shell courant. Celui-ci est parfois atteignable via Code :
echo $0 Sinon, peux-tu faire un ls -l de /bin/ksh sur ta machine, afin de bien vérifier que ce ne soit pas un lien vers /bin/bash (déjà vu de nombreuses fois malheureusement) ?
__________________
Non au langage SMS Modérateur "C", "Informatique Générale & Hardware" et "Windows, Système & Logiciels" Les règles du forum |
|
|
|
|
|
#3 (permalink) |
|
Membre à l'essai
![]() Date d'inscription: février 2004
Messages: 46
|
gangsoleil,
Merci pour ta réponse. En fait echo $0 me donne le nom du script qui s'execute (dans mon cas à mois : majInternet.ksh) La commande # ls -l /bin/ksh Me donne : -rwxr-xr-x 1 root root 180820 jan 25 2003 /bin/ksh Donc pas de problème de ce côté la. Il semble que mon script contenait un caratère pourri. Je l'ai reécrit et à présent ça fonctionne. |
|
|
|
|
![]() |
![]() |
||
Problème interprétation Shell en ksh
|
||
| Outils de la discussion | |
|
|