shift 发表于 2020-08-31 更新于 2020-09-11 shift shift n表示把第 n+1 个参数移到第 1 个参数, 即命令结束后 $1 的值等于 $n+1的值, 而命令执行前的前面 n 个参数不能被再次引用, 后面 $#-n+1 到 $# 的参数被 unset, 参数的个数减少为 $#-n 个. n 的值不能为负数, 若 n 为 0 或大于参数个数 $# 则参数不变, 若 n 没有给定则默认为 1. 当 n 小于 0 或者大于参数个数 $# 时shift 命令的返回值大于 0, 否则返回 0.