Linux学习-变量

Shell

变量

  • 变量名的命名规则

    • 字母、数字、下划线
    • 不以数字开头
  • 给变量赋值

    • a=123 "="左右两边不允许出现空格,系统会认为左边是一条命令去执行
    • let a=10+19
    • l=ls 将命令赋值给变量
    • letc=$(ls -l /etc) 将命令结果赋值给变量,使用$()或''
    • 变量中若有空格或特殊字符,可包含在" "或 ' ' 中
  • 变量引用

    • ${变量名} 引用变量,在部分情况下可以省略为 $变量名
  • 变量一般作用在当前的shell进程和当前的终端中,若想要对当前进程也生效的话,使用 source 方式执行脚本

  • 环境变量:每个shell打开都可以获取的变量

    • set、env、export 变量

      • set 用来显示本地变量,显示当前shell的变量,包括当前用户的变量
      • env 用来显示环境变量,显示当前用户的变量
      • export 用来显示和设置环境变量, 显示当前导出成用户变量的shell变量。export + 变量,可以使子进程获取父进程的变量取值
    • $? 上一条命令是否正确执行成功; $$ 显示当前进程的PID; $0 当前进程的名称;

    • $PATH 命令的搜索路径

      • PATH=$PATH:/root 若一个命令文件放在/root 下面,通过这个方式将/root 添加到搜索路径下,则在任何地方都可以直接执行文件,从而执行命令。对当前终端和子shell生效,换其他终端则无效。
    • $PS1

  • 位置变量

    • $1 $2 $3 ... $9 $
    • pos=${1-_} 表示若$1的取值是空值,则用下划线给pos赋值;若$1有内容,则用$1赋值
  • 环境变量配置文件

    • 配置文件,保存在/etc 目录下面的配置文件,都是通用的,普通用户可用。~下面的配置文件,是用户的家目录配置文件
      • /etc/profile 保存系统和终端启动时的配置文件,使用su - +用户名 时,这个文件第一个被加载。例如 su - root 依次加载的文件:
        /etc/profile
        .bash_profile
        .bashrc
        /etc/bashrc
        以上顺序,若在定义变量时,在各个配置文件中若名称有重复,后面的执行的脚本会把前面的变量给覆盖掉。
        若要使当前系统的所有终端都可用,使用下面语句:
        export PATH=$PATH:/new/path 将该语句写入到上面的配置文件中,则父进程和子进程,以及所有终端都可以使用相关环境变量。
      • /etc/profile.d/
      • ~/.bash_profile
      • ~/bashrc
      • /etc/bashrc
    • 在配置文件中添加环境变量后,如何生效?
      1. 关掉终端,重新打开
      2. source + 配置文件 执行,如 source /etc/bashrc

数组

  • 定义数组
    • IPTS=(10 11 12)
  • 显示数组所有元素
    • echo $
  • 显示数组元素个数
    • echo $
  • 显示数组的第一个元素
    • echo $
posted @ 2020-04-11 01:09  chenzy01  阅读(210)  评论(0编辑  收藏  举报