Forum des développeurs  

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é.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Applications

Applications Questions sur l'utilisation d'applications, du shell, et des interfaces graphiques (KDE, Gnome, XFCE... )

Réponse
 
Outils de la discussion
Vieux 11/08/2008, 15h59   #1 (permalink)
Membre à l'essai
 
Date d'inscription: février 2004
Messages: 46
Par défaut Problème interprétation Shell en ksh

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
Staron est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 12/08/2008, 17h42   #2 (permalink)
Modérateur
 
Avatar de gangsoleil
 
Date d'inscription: mai 2004
Localisation: Grenoble
Âge: 28
Messages: 2 644
Par défaut

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
Cependant, cela n'est pas vrai pour tous les shells (pas vrai pour csh par exemple).

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
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 12/08/2008, 18h04   #3 (permalink)
Membre à l'essai
 
Date d'inscription: février 2004
Messages: 46
Par défaut

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.
Staron est déconnecté   Envoyer un message privé Réponse avec citation
NEWS LINUX PROFESSIONNELFAQ LINUXTUTORIELS LINUXLIVRES LINUXLINUX TVUNIXGTK+QtAPACHE

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Applications



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 15h46.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter
Copyright 2000-2008 www.developpez.com - Legal informations