我想回复一下这样的文字:
"I'm going to bed at "$'\cc3'"$var"$'\cc'
有时会发生$var
变量以数字开头而Bash只是连接它或其他什么。我怎么能逃脱$var
所以它被分开但它们之间没有空格?
答案 0 :(得分:2)
Bash中的ANSI-C Quoting机制使用\cx
生成 Control-X 。您对$'\cc3'
的使用会生成 Control-C (又名\003
或\x03
)字符,后跟数字3。
表面上看,那么,你想要:
var=01:15
echo "I'm going to bed at "$'\cc'"$var"$'\cc'
用 Control-C 字符围绕时间的(尽管你想要那个,但我不清楚)。如果你正在使用Unicode字符U + 0CC3(KANNADA VOWEL SIGN VOCALIC R - ೃ - 如果你有很好的Unicode支持),那么你需要Bash 4.x和$'\ucc3'
。
如果你正在追求别的东西,你需要用ANSI-C引用来解释你想要回应的内容。
答案 1 :(得分:0)
您可以尝试使用\nnn
格式而不是\c
发送control-c:
echo $'I\'m going to bed at \003'"$var"$'\003'
(我稍微改变了引用,只是为了减少用于构建字符串的上下文切换次数。)
或者,将control-c字符保存在变量中:
cc=$'\cc'
echo "I'm going to bed at $cc$var$cc"