以下のBash関数を変更して、各コマンド引数を実行しようとしています。しかし、このスクリプトを実行すると、最初のエコーは意図したとおりに機能しますが、 scratch.txtファイルに追加しようとする2番目のエコーは実際には実行されません。プロンプトにエコーされます。
#!/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を使用した複数のコマンドの実行