我已经宣布arg="echo demo"
当我们执行命令时my_command arg
,arg
应该转换为$arg
,并且应该像
my_command () {
$arg
}
我如何将其$1
作为变量调用?
答案1
shelleval
内置功能可以完成您想要的操作:
$ help eval
eval: eval [arg ...]
Execute arguments as a shell command.
Combine ARGs into a single string, use the result as input to the shell,
and execute the resulting commands.
因此你的函数可能看起来像这样:
my_command() {
eval $1
}
您还$1
可以放置$*
并my_command
采用任意数量的参数。
请注意,到那时,my_command
它只不过是的别名eval
,因此您也可以这样做:
alias my_command=eval