Bonjour à tous, j'essaie de lancer un script shell avec une déclaration de cas
opt=$1
case $opt
in
u) function1 ;;
g) function2 ;;
*) exit ;;
esac
function1()
{
xyz commands
}
funciton2t()
{
xyz commands
}
Je reçois l'erreur suivante:
function1: command not found
Lorsque vous appelez une fonction, celle-ci doit être définie et connue lorsque vous appelez le function1
comme ceci:
u) function1 ;;
L'interprète n'a aucune idée de l'endroit où se trouve cette fonction, car il ne l'a pas encore vue. mettez donc vos fonctions au-dessus de la phrase case
.
Cela réglerait le problème.
@ Kashyap (et autres). Il m'est difficile de savoir si vous avez suffisamment de réponses pour résoudre votre problème?
J'ai légèrement modifié votre code pour vraiment voir ce qui se passe:
function1()
{
echo "I am function 1"
}
function2()
{
echo "I am function 2"
}
opt=$1
case $opt
in
u) function1 ;;
g) function2 ;;
*) echo "Nothing to do"
exit ;;
esac
J'ai nommé le fichier dummyFunc, lui ai donné x-bits et ce sont les résultats.
$ ./dummyFunc u
I am function 1
$ ./dummyFunc g
I am function 2
$ ./dummyFunc
Nothing to do
$
J'espère que cela aide kashyap?
Dans le cas contraire, montrez-nous à quoi ressemble votre script et ajoutez le résultat qu'il génère.
vous avez 2 erreurs de syntaxe:
le i avant le t et un t derrière le 2:
funciton2t()
{
xyz commands
}