BASH脚本基础:环境变量PS1介绍

在这里插入图片描述
这篇文章介绍一下Bash中的环境变量PS1。

PS1 是什么

PS1 是Prompt String 1的缩写,它是Linux/Unix下的一个用于控制提示信息的环境变量,PS1是交互式的shell用于控制用户输入提示信息的环境变量,类似的环境变量还有PS2、PS3和PS4。以下是man bash获得说明内容:

  • Bash版本:4.2.46
[root@liumiaocn ~]# bash --version
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[root@liumiaocn ~]# 
  • PS1-PS4的说明
    在这里插入图片描述
    结合上述PS1-PS4的说明,可以理解此四个环境变量的作用主要如下:
环境变量 用途
PS1 交互式脚本等待用户输入时的提示信息
PS2 一条命令没有结束的时候的连接性的提示(比如使用\将一行复杂的命令使用多行连接起来的场合)
PS3 和select命令结合使用
PS4 调试时的行前显示内容

这篇文章主要介绍以下PS1相关的内容。

PS1示例

在本文示例的Bash环境中,PS1环境变量设定值如下所示:

[root@liumiaocn ~]# echo $SHELL
/bin/bash
[root@liumiaocn ~]# echo $PS1
[\u@\h \W]\$
[root@liumiaocn ~]#

其中\u、\h与\W都是PS1的设定项目,其具体含义分别如下所示:

  • \u:当前用户的用户名
  • \h:主机名(包含.的情况下取第一个字段)
  • \W:当前目录(显示为basename的信息),$HOME目录显示为~

PS1设定项目

设定项目 设定说明
\a ASCII(07)警示音
\d 以"Weekday Month Date"格式显示的日期信息(示例:Wed Jan 29)
\D{format} 指定显示格式的日期
\e 转义(033)(比如进行颜色设定)
\h 主机名(包含.的情况下取第一个字段)
\H 完整主机名(包含.的情况下和\h有所区别)
\j 通过当前shell在后端运行的进程数量(比如通过&符)
\l 此shell的终端设备名(basename)
\n 换行
\r 回车
\s the name of the shell, the basename of $0 (the portion following the final slash)
\t 当前实现显示,格式为:24-hour HH:MM:SS
\T 当前实现显示,格式为:12-hour HH:MM:SS
@ 当前实现显示,格式为:12-hour am/pm
\A 当前实现显示,格式为: 24-hour HH:MM
\u 当前用户的用户名
\v the version of bash (e.g., 2.00)
\V the release of bash, version + patch level (e.g., 2.00.0)
\w 当前目录(显示为全路径),$HOME目录显示为~
\W 当前目录(显示为basename的信息),$HOME目录显示为~
! 当前命令在历史命令缓冲区中的序号
# 命令编号, 从1开始(!是在history的位置)
$ 超级用户(UID为0)显示为#,其余显示为$
\nnn 使用八进制表示的ASCII,比如\a也可以表现为\007
\ 反斜线
[ 非打印字符序列开始,比如颜色转义序列信息
] 非打印字符序列结束

你可能感兴趣的:(#,Shell脚本编程)