function ctrace {
echo "+ $@"
"$@"
}
ctrace echo "hi"
如何输出此功能(带引号):
echo "hi"
在此版本中引号丢失echo hi
...这是另一个示例:
a=b
ctrace echo $a
这应该输出echo $a
而不是echo b
答案 0 :(得分:1)
问题不在于功能,而在于呼叫者。
在第一种情况下,在函数获取参数之前,引号被删除。在第二个中,$a
替换在它到达函数之前完成。
尝试:
ctrace 'echo "hi"'
ctrace 'echo $a'
答案 1 :(得分:0)
您需要将字符串括在单引号
中ctrace 'echo "hi"'
ctrace 'echo $a'