阅读一些关于文本右对齐的代码并有一些疑问:
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"