从命令行调用函数

时间:2011-06-15 04:52:31

标签: shell

我编写了一个在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'

1 个答案:

答案 0 :(得分:1)

除了语法错误(使用括号而不是大括号)之外,您尝试创建的别名将无法达到预期效果。例如:

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

将创建别名foo,在执行时,将定义函数bar。所以:

# foo
# bar
Hello

你想要跳过别名中的函数声明(使它只是for循环),或者创建一个带有函数声明的文本文件并将其源化(. myscript.sh)。