2011-06-15 153 views
0

我已經編寫了一個在shell腳本中按預期工作的函數。但是,如何從命令提示符調用它?我試過alias命令,但我得到一個錯誤從命令行調用函數

bash: syntax error near unexpected token `)' 

有,當我在命令提示符下鍵入SH myscript.sh沒有這樣的錯誤。

這裏是新的錯誤:

# 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

請發表您的shell腳本 – 2011-06-15 04:54:05

回答

1

你試圖從具有語法錯誤(使用大括號而不是括號)創建不會做你期待什麼,一旁的別名。例如:

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

將創建一個別名foo,在執行時,將定義功能bar。所以:

# foo 
# bar 
Hello 

要麼你想跳過的別名函數聲明(使它只是for環),或創建一個文本文件與函數聲明和源它(. myscript.sh)。