我试图修改下面的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的原始代码:
xargs with multiple commands as argument

最佳答案

你想要eval。这是邪恶的。或者至少,很危险。在BashFAQ #48上阅读所有相关信息。

关于bash - bash脚本如何从变量执行命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13323778/

10-14 05:47