右对齐 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"

相关内容