📅  最后修改于: 2023-12-03 15:02:43.063000             🧑  作者: Mango
在Linux中,终端命令行的格式可以用环境变量 $PS1
控制。$PS1
定义了用户在终端中看到的基本提醒符号,也可以帮助你自定义终端提示符号的外观。
$PS1
变量$PS1
是一个环境变量,为Shell命令行的提示符。它是向用户显示的,用来指示用户可以输入命令的位置。
在终端中,一般有如下格式:
[user@hostname path]$
其中,[user@hostname path]
是 $PS1
的值。其中的元素代表:
user
: 当前用户名hostname
: 当前所在主机名path
: 当前所在路径如果你是root用户,当前用户的提示符形式为:
[root@hostname path]#
中间的 $
和 #
用来区分普通用户和管理员。
$PS2
和 $PS3
变量$PS2
和$PS3
都是Shell命令行的二级和三级提示符。当 Shell 需要一个多行输入时,包括 Script 和 history substitution、命令替换等等,会需要使用它们。
$PS2
:二级提示符,标记 Shell 正在等待输入时的换行符,通常是 >
。$PS3
:三级提示符,标记 Shell 使用 select
命令时在屏幕上显示的提示符号。默认情况下,它是 prompt("#")。$PS4
变量$PS4
变量是在 Bash Shell 中运行调试脚本使用的,它在调试期间显示一些内容,方便调试者查看代码执行流程。
在 $PS4
变量没有设置的情况下,默认的值为 "+ "
。
举例说明,设想你需要调试一个Bash脚本,你可以这样设置环境变量:
$ export PS4='Line ${LINENO}: '
$ bash -x test.sh
test.sh
脚本中大约是这个样子的:
#!/bin/bash
echo "进入脚本"
echo "开始循环"
for i in {1..5}
do
sleep 1
echo $i
done
echo "退出脚本"
这样就可以在脚本执行时,把执行过程的行数打印出来:
Line 2: echo '进入脚本'
进入脚本
Line 3: echo '开始循环'
开始循环
Line 5: for i in '{1..5}'
Line 7: sleep 1
Line 8: echo 1
1
Line 7: sleep 1
Line 8: echo 2
2
Line 7: sleep 1
Line 8: echo 3
3
Line 7: sleep 1
Line 8: echo 4
4
Line 7: sleep 1
Line 8: echo 5
5
Line 9: echo '退出脚本'
退出脚本
$PS1
控制着Shell提示符的格式,可以让用户自定义终端的外观,$PS2
和 $PS3
变量用于多行输入时,分别表示第二和第三级提示符,$PS4
变量在调试脚本时,显示调试信息,帮助调试人员更好的了解程序运行状态。