この関数は機能します:
source foo.bash && foo -n "a b c.txt"
問題は、何を試しても、この出力を正確に生成するための最後の行echo "$CMD"
(または)を取得できなかったことです。echo $CMD
cat -n "a b c.txt"
それを達成する方法は?
# foo.bash
function foo() {
local argv=("$@");
local OUT=`cat "${argv[@]}"`
local CMD=`echo cat "${argv[@]}"`
echo "--------------------------"
echo "$OUT"
echo "--------------------------"
echo "$CMD"
}
代わりに、出力は次のとおりです。
cat -n a b c.txt
このコマンドfoo -n \"a b c.txt\"
を使用すると、コマンドの表示には機能しますが、バックティックを介した実行でエラーが発生します。
このファイル"a b c.txt"
は、有効な小さなテキストファイルです。