内容一:shift 在 Shell 脚本中的作用
偏移位置变量,默认偏移 1 位,也就是说第 1 个位置变量的值会被第 2 个位置变量的值取代。
如果 shift 后面添加数字,则会直接偏移对应数字个位置。例如 shift 4 则代表直接偏移 4 个位置变量,此时第 1 个位置变量的值会被第 5 个位置变量的值取代。
(注意:shift 不能偏移成负数,且当剩下的位置变量数量不够 shift 偏移时,shift 则不会偏移)
内容二:shift 在 Shell 脚本中的案例
2.1 shift 在 Shell 脚本中的案例 (只偏移 1 位)
2.1.1 创建不偏移的只要还有位置变量就无限循环显示第 1 个位置变量的值的脚本
# vim test.sh
创建以下内容:
#!/bin/bash
while [ $# != 0 ];do
echo $1
done
2.1.2 执行此脚本会发现此脚本在无线循环
. test.sh a1 b2 c3 d4 e5
a1
a1
a1
a1
a1
a1
......
2.1.3 创建偏移 1 位的只要还有位置变量就无限循环显示第 1 个位置变量的值的脚本
#!/bin/bash
while [ $# != 0 ];do
echo $1
shift
done
2.1.4 执行此脚本会发现此脚本的位置变量在发生变化
. test.sh a1 b2 c3 d4 e5
a1
b2
c3
d4
e5
2.2 shift 在 Shell 脚本中的案例 (偏移 5 位)
2.2.1 创建不偏移的只要还有位置变量就无限循环显示第 1 个位置变量的值的脚本
# vim test.sh
创建以下内容:
#!/bin/bash
while [ $# != 0 ];do
echo $1
done
2.2.2 执行此脚本会发现此脚本在无线循环
. test.sh a1 b2 c3 d4 e5
a1
a1
a1
a1
a1
a1
......
2.2.3 创建偏移 5 位的只要还有位置变量就无限循环显示第 1 个位置变量的值的脚本
#!/bin/bash
while [ $# != 0 ];do
echo $1
shift 5
done
2.2.4 执行此脚本会发现此脚本的位置变量在发生变化
. test.sh a1 b2 c3 d4 e5
a1