linux学习笔记_8_shell变量

shell变量

变量是程序设计中的重要概念,在shell中,变量不仅包含程序编写中的变量,还包括环境变量。例如命令执行中依赖的PATH变量,代表用户家目录的HOME变量。

变量使用与设置

变量使用

通过${variables}$variables的方式可以使用变量。

  • 查看HOME变量的内容echo ${HOME}
  • 切换目录cd ${HOME}

变量设置

  • 使用等号=链接变量名与值,等号两侧无空格。
    例如tmp=Hello将变量tmp设置为字符串Hello
  • 可使用"设置含有空格的变量,亦可使用转义空格。
tmp="Hello world" 
tmp=Hello world
  • 变量名可使用数字,字母,下划线等。开头不能使用数字。
  • 获取变量,可使用$
$ echo $tmp
Hello world
  • 双引号内特殊字符可保持原有特性,单引号内特殊字符均变为普通字符
$ echo "${LANG} Hello"
en_US.UTF-8 Hello

$ echo '${LANG} Hello'
${LANG} Hello
  • 使用unset variable取消变量设置。例如,取消tmp变量。unset tmp
  • 使用export variable可暂时将变量加入到环境中,使得可在子程序中使用改变量。

环境变量

printenv打印所有环境变量

$ printenv
SHELL=/bin/zsh # 当前使用的shell
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/cuda/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl # 重要的环境变量,命令查询路径。
HOME=/home/xx # 当前家目录
USER=xx # 当前用户名
LOGNAME=xx
TERM=xterm-256color
SHLVL=1
PWD=/home/xx/linux_learn # 当前目录路径 
OLDPWD=/home/xx # 前一次访问的目录
  • HOME 用户家目录
  • SHELL 当前使用的shell
  • PATH 执行文件查找命令
  • LANG 语系设置相关
  • RANDOM 产生随机数的变量。通过$RANDOM方式获取大量随机数
  • PS1 用于设置命令提示符的格式,完整设置可查bash man page,zsh man page 中未发现PS1设置相关说明。常用参数如下
    • H 完整主机名
    • h 在第一个小数点之前的主机名
    • 显示时间 24小时制 [HH:MM:SS]
    • u 显示账户名
    • w 完整工作目录,从根目录开始显示。家目录使用~显示
    • W 当前目录。家目录同上
    • $ 提示字符,root 为#,其他用户$
[xx@xx-pc etc]$ PS1='	 H u'
16:04:58 xx-pc xx
  • $ 返回当前shell PID
  • ? 查看上一条命令返回值,顺利运行返回值为0。
$ echo $$  
4690

$ echo $?
0
  • export 可将自定义变量转变为环境变量。子进程会继承父进程的环境变量,所以可使得子进程使用父进程的自定义变量。

参考

《鸟哥的linux私房菜》

原文地址:https://www.cnblogs.com/lif323/p/10920268.html