在shell脚本中,`shift` 是一个内置命令,用于改变位置参数的位置。具体来说,`shift` 命令会将所有的位置参数向左移动一个位置,即第一个参数(`$1`)会被丢弃,原来的第二个参数(`$2`)变成第一个参数,原来的第三个参数(`$3`)变成第二个参数,以此类推。以下是shift命令的使用方式:
shift [n]
n是一个可选的数字参数,指定要向左移动的位置数。默认情况下,n为1,表示移动一个位置。
下面是一个示例,展示了如何使用shift命令:
#!/bin/bash
echo "原始参数列表:$@"
echo "原始参数个数:$#"
shift
echo "移动一个位置后的参数列表:$@"
echo "移动一个位置后的参数个数:$#"
执行bash shift命令.sh one two three,输出结果如下:
原始参数列表:one two three
原始参数个数:3
移动一个位置后的参数列表:two three
移动一个位置后的参数个数:2在这个示例中,
shift
命令将第一个参数one
丢弃,并将two
和three
的位置向左移动一个位置,此时$1为two,$2为three。
shift命令应用 :
#!/bin/bash
while [ $# -gt 0 ]; do
echo "第一个参数为:$1,参数个数为:$#"
shift
done
执行命令bash shift命令应用.sh -f a.txt -n 100
第一个参数为:-f,参数个数为:4
第一个参数为:a.txt,参数个数为:3
第一个参数为:-n,参数个数为:2
第一个参数为:100,参数个数为:1