yesn 发表于 2018-8-29 10:41:05

shell脚本工具之变量

  shell中的变量类型分为环境变量,位置变量,特殊变量以及用户自定义变量,每种变量都有其特殊的功能.
  系统变量:是由系统默认的变量,部分变量的值是由系统默认指定
  位置变量:是根据在命令行的参数与命令行中的每一个参数关联
  特殊变量:与环境变量相似
  自定义变量:由用户自己定义的变量,并赋值
  一.系统变量(全部大写)
  # echo $HOME      --显示当前用户的根目录
  /root
  # echo $PATH      --显示命令的目录
  /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/protobuf-2.5.0/bin:/root/bin
  # echo $LOGNAME    --显示登陆名
  root
  # echo $UID      --显示当前用户登陆的UID
  0
  # echo $SHELL      --显示当前用户的shell
  /bin/bash
  #
  二.位置变量
  变量格式:
  $命令   参数1   参数2   参数3 ...........
  $0         --显示文件本身
  $1         --对应第一个参数
  $2         --对应第二个参数
  # cat 1.sh       --如果值比变量多就为空
  #!/bin/bash
  echo $0 $1 $2 $3
  # ./1.sh9 8 7 6 5 4
  ./1.sh 9 8 7
  # cat 1.sh            --用循环的方式读取变量
  #!/bin/bash
  echo "---------------------"
  while [ $# -gt 0 ]
  do
  echo "当前位置变量:$*"
  shift
  done
  echo "----------------------"
  # ./1.sh 9 8 7 6 5 4
  ---------------------
  当前位置变量:9 8 7 6 5 4
  当前位置变量:8 7 6 5 4
  当前位置变量:7 6 5 4
  当前位置变量:6 5 4
  当前位置变量:5 4
  当前位置变量:4
  ----------------------
  #
  三.特殊变量
  $#            --实际参数的个数
  $*            --所有变量的值
  $!            --上一个命令对应的进程号
  $?            --上一个命令执行后的状态
  $$            --当前进程的PID
  # cat 1.sh
  #!/bin/bash
  echo "---------------------"
  echo "参数的个数:$#"
  echo "参数的值:$*"
  echo "前三个参数:$1,$2,$3"
  echo "退出的状态:$?"
  echo "PID号:$$"
  echo "----------------------"
  # ./1.sh 9 8 7 6 5 4
  ---------------------
  参数的个数:6
  参数的值:9 8 7 6 5 4
  前三个参数:9,8,7
  退出的状态:0
  PID号:3922
  ----------------------
  #
  四.用户自定义变量
  declare和typeset都可以给变量赋值

页: [1]
查看完整版本: shell脚本工具之变量