制御シーケンスに渡された文字列を連結します。

制御シーケンスに渡された文字列を連結します。

echoBash端子に青いバーを印刷する呼び出しがあります。

echo $'\e[48;2;0;0;255m                \e[0m'

次の変数を渡したいと思います(これはうまくいきません)。

rgb_blue=42
echo $'\e[48;2;0;0;"$rgb_blue"m                \e[0m

これを行う方法はありますか? Bashで文字列を連結する一般的な方法を試しましたが、そのうち何も機能しませんでした。

答え1

変数は一重引用符内では拡張されません。しかし、色が必要です$' '。したがって、2つを組み合わせる必要があります。次のように動作する必要があります。

echo $'\e[48;2;0;0;'"${rgb_blue}"$'m                \e[0m'

またはもっと簡単かもしれません。

printf '\e[48;2;0;0;%dm                \e[0m\n' "$rgb_blue"

関連情報