我试图修改下面的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运行多个命令