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"
 ...

DIALOGは、TITLEにスペースなしで文字列が含まれていると正しく機能します。スペースの使用 - 適切な置換は行われません。

同様のバリエーションを試してみました。 (運が悪い。)

$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"
...

ありがとうございます

おすすめ記事