閱讀一些關於文字右對齊的程式碼並有一些問題:
PS1="`printf "%${COLUMNS}s\n" "${TEXT}"`$PS1"
- 反引號在做什麼?
- 為什麼最後還有另一個 PS1?
感謝您的輸入:)
答案1
這會建立一個提示,其中有右對齊的$TEXT
,後面跟著換行符,後面跟著先前的值$PS1
。
反引號是 shell 的命令替換:shell 將執行該命令並取代該命令的輸出。一般建議使用語法$(cmd)
而不是`cmd`
語法。
該行無需命令替換即可使用以下printf -v varname
語法編寫:
printf -v PS1 '%*s\n%s' "$COLUMNS" "$TEXT" "$PS1"