【发布时间】:2016-06-29 10:20:57
【问题描述】:
您可以将命令作为变量传递给另一个函数吗?如果是,语法是什么?
我的代码看起来像。
function1(){
for a in $1
do
echo $a
done
}
function2(){
function1 "ls -lrt folder/Name | grep 'foo' | grep 'bar'"
}
但这不起作用。我什至尝试将其传递为:
function1 `ls -lrt folder/Name | grep 'foo' | grep 'bar'`
但这只会传递命令的第一个值(我明白为什么会发生这种情况)。
有人知道将命令作为变量传递的语法吗?
【问题讨论】:
-
当您在
function1中说for a in $1时,这意味着您正在处理第一个参数。如果要循环遍历所有参数,需要使用$@。 -
上面的评论是正确的,你也可以省略 for 循环,只做
echo @a- 如果你打算只传递一个字符串/函数 -
我试过了,它有效!非常感谢! :)
-
如果function1有多个参数怎么办?命令是传递的第三个参数,然后使用 $@ 接受一些不必要的值。我如何获取从 3 美元起的价值?
标签: bash function unix parameters