右揃えの PS1 と PS1 は等しいですか?

右揃えの PS1 と PS1 は等しいですか?

どこかでテキストの右揃えに関するコードを読んで、いくつか質問があります。

        PS1="`printf "%${COLUMNS}s\n" "${TEXT}"`$PS1"
  1. バックティックは何をしているのですか?
  2. なぜ最後にもう一つ PS1 があるのでしょうか?

ご意見ありがとうございます:)

答え1

これにより、右揃えの$TEXT、その後に改行、そして の前の値が表示されるプロンプトが作成されます$PS1

バックティックはシェルのコマンド置換: シェルはコマンドを実行し、コマンドの出力を置き換えます。通常は、構文$(cmd)ではなく構文を使用することをお勧めします`cmd`

この行は、次の構文を使用してコマンド置換なしで記述できますprintf -v varname

printf -v PS1 '%*s\n%s' "$COLUMNS" "$TEXT" "$PS1"

関連情報