文字列内のbash変数の後にスペースを避けるには?

文字列内のbash変数の後にスペースを避けるには?

色変数があります。私はこれを文字列内で評価して文字列の色を設定するために使用します。ただし、名前の後にスペースを含める必要があります(名前にテキストの一部が含まれないように)。時々好きではないようです。

このスペースを使用(印刷)したくない場合はどうすればよいですか?

例(例えば、およびRed=1NC=2

echo -e "$Red Note: blabla$NC".

出力:

1 Note: blabla2.

予想出力:

1Note: blabla2.

答え1

変数を中かっこで囲みます。

echo -e "${Red}Note: blabla${NC}".

詳細を見るパラメータ拡張

素晴らしい答えも参照してくださいなぜprintfがechoより優れているのですか?携帯性を重視するなら。

答え2

printfを使う習慣を身につけなければなりません。

printf '%sNote: blabla%s\n' "$Red" "$NC"

これらのそれぞれは%s変数を置き換えます。そして、-eprintfは移植可能な方法でバックスラッシュ値\ n、\ tなどを受け入れるので必要ありません。

echo -e他のシェルには移植できないことに注意してください。

その他のオプション:

両方のコマンドを使用して出力を接続できます。

echo -ne "$Red"; echo -e "Note: blabla$NC"

単純な文字列連結を使用できます。

echo -e "$Red""Note: blabla$NC"

{ }または、以下を使用して名前とテキストの混乱を避けることができます。

echo -e "${Red}Note: blabla$NC"

関連情報