bash脚本如何从变量执行命令

bash脚本如何从变量执行命令,bash,Bash,我试图修改下面的bash函数来执行每个命令参数。但是,当我运行这个脚本时,第一个echo按预期工作,但是尝试附加到scratch.txt文件的第二个echo实际上没有执行。它只是进入提示 #!/bin/sh clear function each(){ while read line; do for cmd in "$@"; do cmd=${cmd//%/$line} printf "%s\n" "$cmd" $cmd done d

我试图修改下面的bash函数来执行每个命令参数。但是,当我运行这个脚本时,第一个echo按预期工作,但是尝试附加到scratch.txt文件的第二个echo实际上没有执行。它只是进入提示

#!/bin/sh
clear

function each(){
  while read line; do
    for cmd in "$@"; do
      cmd=${cmd//%/$line}
      printf "%s\n" "$cmd"
      $cmd
    done
  done
}

# pipe in the text file and run both commands 
# on each line of the file
cat scratch.txt | each 'echo %' 'echo -e "%" >> "scratch.txt"'

exit 0
如何让$cmd变量作为命令执行

我在这里找到了答案2中的原始代码:

您需要
评估
。这是邪恶的。或者至少是危险的。阅读有关它的所有信息。

您需要
eval
。这是邪恶的。或者至少是危险的。阅读所有关于它的文章