PS即是Prompt String,命令提示符的意思。在bash中一共有四个地方出现。分为表示为PS1,PS2,PS3,PS4。
PS1是用来控制默认提示符显示格式。下面方括号中的内容便是PS1。
[root@Ethan ~]# echo $PS1
[\u@\h \W]\$
PS1的常用参数以及含义:
<46>[root@Ethan Ethan]#echo $PS1
<\#>[\u@\h \W]\$
在PS1中设置字符颜色的格式为:\[\e[F;Bm\]……..\[\e[0m\]
其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47,\[\e[0m\]作为颜色设定的结束。
编辑“~/.bash_profile”文件。
[root@Ethan ~]# cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "
export PS1
一个非常长的命令可以通过在末尾加“\”使其分行显示。多行命令的默认提示符是“>”。 我们可以通过修改PS2 ,将提示符修改为”continue->” 。
<7>[root@Ethan ~]#PS2='continue->'
<8>[root@Ethan ~]#ls \
continue->/etc \
continue->/boot
Shell脚本中使用select时的提示符
现在有下面这样一个脚本:
#PS3='Select a day (1-4):'
select i in mon tue wed exit
do
case $i in
mon) echo "Monday";;
tue) echo "Tuesday";;
wed) echo "Wednesday";;
exit) exit;;
esac
done
默认运行如下:
<35>[root@Ethan Ethan]#sh p3.sh
1) mon
2) tue
3) wed
4) exit
#? 1
Monday
#? 2
Tuesday
#? 5
#?
修改PS3=’ Select a day (1-4): ‘后,我们在脚本中添加,如下:
<39>[root@Ethan Ethan]#sh p3.sh
1) mon
2) tue
3) wed
4) exit
Select a day (1-4):1
Monday
Select a day (1-4):2
Tuesday
Select a day (1-4):3
Wednesday
“set -x”用来修改跟踪输出的前缀 。
有下面这样一个脚本文件:
set -x
#PS4='$0.$LINENO+ '
echo "hello world"
ls /Ethan
试着来运行一下,可以看到命令前的“+”,PS4就是用来定义这个提示符的。
[root@Ethan Ethan]# sh p4.sh
+ echo 'hello world'
hello world
+ ls /Ethan
p3.sh p4.sh
[root@Ethan Ethan]# sh p4.sh
+ PS4='$0.$LINENO+ '
p4.sh.3+ echo 'hello world'
hello world
p4.sh.4+ ls /Ethan
p3.sh p4.sh
https://blog.csdn.net/rainharder/article/details/54573021