繁体   English   中英

关闭bash变量替换

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM