我编写了一个在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 :(得分:1)
除了语法错误(使用括号而不是大括号)之外,您尝试创建的别名将无法达到预期效果。例如:
alias foo='bar() { echo Hello; }'
将创建别名foo
,在执行时,将定义函数bar
。所以:
# foo
# bar
Hello
你想要跳过别名中的函数声明(使它只是for
循环),或者创建一个带有函数声明的文本文件并将其源化(. myscript.sh
)。