有关shell中普通变量和环境变量的一些技巧

发布时间:2020-05-26编辑:脚本学堂
有关shell中普通变量和环境变量的一些技巧

1、获得字符串长度
可以使用下面的方法获得变量值的长度:
length=${#var}
例如:
$ var=12345678901234567890
$ echo ${#var}
20
length就是字符串所包含的字符数。

2、识别当前的shell版本
可以使用下面的方法获取当前使用的是哪种shell:
echo $SHELL

也可以使用:
$ echo $0

例如:
$ echo $SHELL
/bin/bash

$ echo $0
bash

3、检查当前登录的是否为超级用户
UID是一个重要的环境变量,可以用于检查当前脚本是以超级用户还是以普通用户的身份运行的。例如:
 

复制代码 代码如下:
if [ $UID -ne 0 ]; then
echo Non root user. Please run as root.
else
echo "Root user"
fi

备注:root用户的 UID 为 0。

4、修改bash提示字符串(username@hostname:!$)
当我们打开一个终端或是运行一个shell,都会看到类似于user@hostname:/home/$的提示字符串。不同GNU/linux发布版中的提示及颜色也略有不同。我们可以使用PS1环境变量来定制提示文本。默认的shell提示文本在文件./bashrc中的某一行中设置。

可以使用如下命令列出设置PS1的那一行:
 

复制代码 代码如下:
cat ~/.bashrc | grep PS1
PS1='${debian_chroot:+($debian_chroot)}u@h:w$ '

如果要设置提示字符串,可以输入:
 

复制代码 代码如下:
slynux@localhost:~$ PS1="PROMPT>"
PROMPT> Type commands here #提示符已经改变

还可以使用类似e[1;31的特定转义序列来设置彩色的提示字符串。
还有一些特殊的字符,可以扩展为系统参数。例如: u可以扩展为用户名,h可以扩展为主机名,而w可以扩展为当前工作目录。
大家可以根据自己的喜好,进行调整,以实现更加个性化的bash提示字符串显示。