且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

[20130225]bash shell 的提示符.txt

更新时间:2022-09-04 13:25:59

[20130225]bash shell 的提示符.txt

http://www.thegeekstuff.com/2008/09/bash-shell-take-control-of-ps1-ps2-ps3-ps4-and-prompt_command/
http://www.thegeekstuff.com/2008/09/bash-shell-ps1-10-examples-to-make-your-linux-prompt-like-angelina-jolie/

1.关于PS1:

今天看了关于bash shell的提示符的相关文章:

我个人喜欢在安装好linux主机后,修改PS1的提示符,例子:

PS1="\[[\u@\033[1;31m\h\033[0m IP=40 \w \033[1;32m\#\033[0m]\\$ \]"
export ps

--这样主机名的部分显示的是红色.

我的感觉链接使用变量的方式更加科学一些,这样更加清晰.

RED="\[\033[1;31m\]"
GREEN="\[\033[0;32m\]"
NO_COLOR="\[\033[0m\]"
PS1="[\u@$RED\h$NO_COLOR IP=40 \w $GREEN\\#$NO_COLOR]\\$ "
export PS1

2.PS3:
使用来提示select命令的提示,这个是我以前不知道的,我很少使用select命令.

拿文章的例子来说明:
$ cat ss.sh
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


$ ./aa.sh
1) mon
2) tue
3) wed
4) exit
Select a day (1-4):


3.PS4:
感觉设置这个对于调试shell帮助很大.

$ cat aa.sh
#! /bin/bash -x
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

$ export PS4='Program=$0 LineNo=$LINENO:'
$ ./aa.sh
Program=./aa.sh LineNo=2 :PS3='Select a day (1-4): '
Program=./aa.sh LineNo=3 :select i in mon tue wed exit
1) mon
2) tue
3) wed
4) exit
Select a day (1-4): q
Program=./aa.sh LineNo=5:case $i in
Select a day (1-4): 1
Program=./aa.sh LineNo=5:case $i in
Program=./aa.sh LineNo=6:echo Monday
Monday
Select a day (1-4): 4
Program=./aa.sh LineNo=5:case $i in
Program=./aa.sh LineNo=9:exit