どこかでテキストの右揃えに関するコードを読んで、いくつか質問があります。
PS1="`printf "%${COLUMNS}s\n" "${TEXT}"`$PS1"
- バックティックは何をしているのですか?
- なぜ最後にもう一つ PS1 があるのでしょうか?
ご意見ありがとうございます:)
答え1
これにより、右揃えの$TEXT
、その後に改行、そして の前の値が表示されるプロンプトが作成されます$PS1
。
バックティックはシェルのコマンド置換: シェルはコマンドを実行し、コマンドの出力を置き換えます。通常は、構文$(cmd)
ではなく構文を使用することをお勧めします`cmd`
。
この行は、次の構文を使用してコマンド置換なしで記述できますprintf -v varname
。
printf -v PS1 '%*s\n%s' "$COLUMNS" "$TEXT" "$PS1"