2011-06-15 9 views
0

J'ai écrit une fonction qui fonctionne comme prévu dans le script shell. Mais comment puis-je l'appeler à partir de l'invite de commande? J'ai essayé la commande alias, mais je reçois une erreurappeler la fonction à partir de la ligne de commande

bash: syntax error near unexpected token `)' 

Il n'y a pas d'erreur quand je tape sh myscript.sh à l'invite de commande.

Voici la nouvelle erreur:

# alias start_multi="start_multi() (for socket in {2..9} do; /usr/bin/mysqld_multi start $socket; done)" 

# start_multi 
bash: syntax error near unexpected token `/usr/bin/mysqld_multi' 
+0

Postez votre script shell s'il vous plaît –

Répondre

1

L'alias que vous essayez de créer ne fera pas ce que vous attendez, à part d'avoir une erreur de syntaxe (utilisant des parenthèses au lieu d'accolades). Par exemple:

alias foo='bar() { echo Hello; }' 

va créer un alias foo, que lorsqu'il est exécuté, définira la fonction bar. Alors:

# foo 
# bar 
Hello 

Soit vous voulez sauter la déclaration de fonction dans l'alias (ce qui en fait juste la boucle for), ou créer un fichier texte avec la déclaration de fonction et de la source, il (. myscript.sh).

Questions connexes