Bash变量扩展

Mau*_*fer 1 bash

我试图在bash中做一些变量扩展,但不知何故结果是截断/旋转.这是我的代码示例:

x="no-cabac,level=3,ref=3,bframes=0,subme=0,weightp=0"
tts="{$x}"
echo $tts
Run Code Online (Sandbox Code Playgroud)

这打印: }no-cabac,level=3,ref=3,bframes=0,subme=0,weightp=0

我期望: {no-cabac,level=3,ref=3,bframes=0,subme=0,weightp=0}

如果我改变tts到tts=abc{$x}qwe输出是}qweno-cabac,level=3,ref=3,bframes=0,subme=0,weightp=0

我试图逃避括号并删除引号,仍然无法正常工作.我知道有些东西必须逃脱,但我无法弄清楚是什么.

bash --version 输出: GNU bash, version 3.2.48(21)-release (i686-pc-cygwin)

Ign*_*ams 5

你是$x从别的地方来的,\r最后还有.尝试:

tts="{${x/$'\r'/}}"
Run Code Online (Sandbox Code Playgroud)

  • 只是一个诊断提示:将变量值(或任何字符串)传递给`| od -a`用_whitespace查看它的逐个字符表示,并用符号名称显示控制字符.例如,`\ r``显示为`cr`,`\n`显示为`nl`,`\ t`显示为`ht`. (2认同)