shell变量
时间:2019-04-16 23:59:04 来源:igfitidea点击:
shell中变量可以用来存储数据和配置选项。变量有两种类型: 系统变量和用户自定义变量
系统变量
系统变量是由shell本身创建和维护。
他们通常是用大写字母定义(auto_resume和histchars除外)。
如何查看所有的系统变量
使用命令:
[root@rhel6 ~]# set
或者
[root@rhel6 ~]# env MAIL=/var/spool/mail/root PWD=/root KDE_IS_PRELINKED=1 LANG=en_US.UTF-8 KDEDIRS=/usr HISTCONTROL=ignoredups SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass HOME=/root SHLVL=2
或者
[root@rhel6 ~]# printenv
常用的shell系统变量
系统变量 | 说明 |
---|---|
BASH_VERSION | bash版本 |
HOSTNAME | 主机名 |
CDPATH | cd命令的搜索路径。 |
HISTFILE | 保存命令历史记录的文件名。 |
HISTFILESIZE | 历史记录文件中包含的最大行数。 |
HISTSIZE | 在命令历史记录中要记住的命令数。默认值为500。 |
HOME | 当前用户的主目录。 |
IFS | 内部字段分隔符。默认值为 |
LANG | 语言环境。 |
PATH | 命令的搜索路径。 |
PS1 | 控制台提示设置。 |
TMOUT | 内置读取命令的默认超时时间。 |
TERM | 您的登录终端类型。 |
SHELL | 设置登录shell的路径。 |
DISPLAY | 设置显示的名称 |
EDITOR | 设置默认文本编辑器的名称。 |
如何查看系统变量的值?
使用echo命令显示变量的值。例如显示程序搜索路径:
[root@rhel6 ~]# echo "$PATH" /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
查看控制台提示:
[root@rhel6 ~]# echo "$PS1" [\u@\h \W]$
所有变量名必须以$符号开头,并且用引号括起来。
变量名也可以用大括号括起来,特别是在编程时,变量后面跟着字符,必须使用大括号,例如:
echo "${HOME}" echo "${HOME}work"
printf命令
printf命令就像echo命令一样,可以在不同版本的UNIX操作系统中使用。
但是printf更具有可移植性:
printf "$VARIABLE_NAME\n" printf "字符串 %s" $VARIABLE_NAME printf "十进制数 %d" $VARIABLE_NAME printf "浮点数 %f" $VARIABLE_NAME
使用printf可以有多种写法,例如,查看命令的搜索路径:
printf "$PATH\n"
还可以这样写
intf "path: %s\n" $PATH
用户定义的变量
由用户创建和维护。自定义的变量可以使用任何有效的变量名,但是最好避免全部使用大写,防止和系统变量冲突。
变量命名规则
变量名必须以字母数字或下划线字符(_)开头,后跟一个或多个字母数字或下划线字符。
有效的shell变量的例子:
HOME SYSTEM_VERSION vech no1 _count
shell变量名是区分大小写的
no=10 No=11 NO=20 nO=2