zoukankan      html  css  js  c++  java
  • 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私房菜》

  • 相关阅读:
    fork子进程
    多输入使用多线程
    多输入select
    多输入之轮询
    开启telnet
    slickedit编译调试linux应用程序
    电子书框架
    通用Makefile
    STDIN_FILENO和stdin
    libiconv交叉编译提示arm-none-linux-gnueabi-gcc
  • 原文地址:https://www.cnblogs.com/lif323/p/10920268.html
Copyright © 2011-2022 走看看