用空格替换 Bash 变量

用空格替换 Bash 变量

有下一个代码:

TITLE="Some value with spaces"
DIALOG="${DIALOG=dialog} --clear --no-tags --tab-correct --backtitle $TITLE "
...
$DIALOG --title "Some title --menu "Menu" 15 60 5 "1" "menu1" "2" "menu2"
 ...

当 TITLE 包含不带空格的字符串时,DIALOG 工作正常。使用空格 - 没有完成正确的替换。

尝试使用类似的变体(没有运气):

$TITLE
"$TITLE"
\"$TITLE\"
${TITLE}
"${TITLE}"
\"${TITLE}\"
TITLE='Some value with spaces'
TITLE="Some\ value\ with\ spaces"

如何进行正确的替换?

答案1

这段代码工作正常:

TITLE="Some value with spaces"
DIALOG="${DIALOG=dialog}
OPTS=(--clear --no-tags --tab-correct --backtitle "$TITLE")
...
$DIALOG "${OPTS[@]}" --title "Some title" --menu "Menu" 15 60 5 "1" "menu1" "2" "menu2"
...

感谢 伊尔卡楚

相关内容