右對齊 PS1 和 PS1 等於自身嗎?

右對齊 PS1 和 PS1 等於自身嗎?

閱讀一些關於文字右對齊的程式碼並有一些問題:

        PS1="`printf "%${COLUMNS}s\n" "${TEXT}"`$PS1"
  1. 反引號在做什麼?
  2. 為什麼最後還有另一個 PS1?

感謝您的輸入:)

答案1

這會建立一個提示,其中有右對齊的$TEXT,後面跟著換行符,後面跟著先前的值$PS1

反引號是 shell 的命令替換:shell 將執行該命令並取代該命令的輸出。一般建議使用語法$(cmd)而不是`cmd`語法。

該行無需命令替換即可使用以下printf -v varname語法編寫:

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

相關內容