第一个参数应该转换为变量并执行

第一个参数应该转换为变量并执行

我已经宣布arg="echo demo"

当我们执行命令时my_command argarg应该转换为$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

相关内容