这是我的示例 bash 代码:
exec_command(){
command_1="<some string 1>"
command_2="<some string 2>"
command_3="<some string 3>"
now=$@
echo $now
}
for (( i=1; i<=3; i++ )); do
exec_command "command_$i"
这里的特殊变量$@
是指函数内部的另一个变量。我希望 echo $now 打印 command_1、command_2 等的内容。相反,它只是将输出打印为 command_1、command_2。
我尝试使用 eval 但我不确定如何设置 $i 部分的替换。我可以使用 if else 块来匹配函数内的每个变量,但这太笨拙了。有没有更好的办法?