色の変数があります。文字列内で評価することにより、文字列に色を設定するために使用します。ただし、名前の後にスペースを含める必要があります(名前にテキストの一部が含まれないようにするため)。これは時々悪く見えます。
このスペースの使用(印刷)を回避するにはどうすればよいですか?
例(Red=1
およびNC=2
):
echo -e "$Red Note: blabla$NC".
出力:
1 Note: blabla2.
期待される出力:
1Note: blabla2.
変数を中括弧で囲むだけです:
echo -e "${Red}Note: blabla${NC}".
Parameter Expansion の詳細を参照してください。
移植性を重視する場合は、優れた回答 printfがechoより優れている理由 も参照してください。
使用する習慣をつける必要があるのはprintfです。
printf '%sNote: blabla%s\n' "$Red" "$NC"
各%s
変数を置き換えます。そしてその -e
は、printfがバックスラッシュ値\ n、\ tなどを移植可能な方法で受け入れるため、必要ありません。
echo -e
は他のシェルに移植できません。
出力を連結する2つのコマンドを使用できます。
echo -ne "$Red"; echo -e "Note: blabla$NC"
単純な文字列連結を使用できます:
echo -e "$Red""Note: blabla$NC"
または、{ }
名前とテキストの混乱を避けるために:
echo -e "${Red}Note: blabla$NC"