此功能有效:
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"
是一个有效的小型文本文件。