bei 发表于 2018-8-23 08:51:19

linux shell shift

非常有用的 Unix 命令:shift。我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当 Shell 程序不知道其个数时,可以把所有参数一起赋值给变量$*。若用户要求 Shell 在不知道位置变量个数的情况下,还能逐个的把参数一一处理,也就是在 $1 后为 $2,在 $2 后面为 $3 等。在 shift 命令执行前变量 $1 的值在 shift 命令执行后就不可用了。  示例如下:
  #测试 shift 命令(x_shift.sh)
  until [ $# -eq 0 ]
  do
  echo "第一个参数为: $1 参数个数为: $#"
  shift
  done
  执行以上程序x_shift.sh:
  $./x_shift.sh 1 2 3 4
  结果显示如下:
  第一个参数为: 1 参数个数为: 4
  第一个参数为: 2 参数个数为: 3
  第一个参数为: 3 参数个数为: 2
  第一个参数为: 4 参数个数为: 1
  从上可知 shift 命令每执行一次,变量的个数($#)减一,而变量值提前一位,下面代码用 until 和 shift 命令计算所有命令行参数的和。

页: [1]
查看完整版本: linux shell shift