[英]turn off bash variable substitution
function ctrace {
echo "+ $@"
"$@"
}
ctrace echo "hi"
我将如何输出此函数(带引号):
echo "hi"
在此版本中,引号丢失了echo hi
...这是另一个示例:
a=b
ctrace echo $a
这应该输出echo $a
而不是echo b
问题不在于功能,而在于调用者。
在第一种情况下,引号在函数获取参数之前被删除。 在第二步中, $a
替换在到达函数之前完成。
尝试:
ctrace 'echo "hi"'
ctrace 'echo $a'
您需要将字符串用单引号引起来
ctrace 'echo "hi"'
ctrace 'echo $a'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.