在shell中,我们有命令shift,但我在一些示例中看到它提供了shift 3
为什么在换班后会有一个数字?这是关于什么的?它是做什么的?
示例:
echo “arg1= $1 arg2=$2 arg3=$3”
shift
echo “arg1= $1 arg2=$2 arg3=$3”
shift
echo “arg1= $1 arg2=$2 arg3=$3”
shift
echo “arg1= $1 arg2=$2 arg3=$3”
shift
输出将为:
arg1= 1 arg2=2 arg3=3
arg1= 2 arg2=3 arg3=
arg1= 3 arg2= arg3=
arg1= arg2= arg3=
但当我添加它时,它不能正确显示它。
发布于 2012-05-02 21:11:02
看看man页面,上面写着:
shift [n]
The positional parameters from n+1 ... are renamed to $1 ....
If n is not given, it is assumed to be 1.
示例脚本:
#!/bin/bash
echo "Input: $@"
shift 3
echo "After shift: $@"
运行它:
$ myscript.sh one two three four five six
Input: one two three four five six
After shift: four five six
这表明在移位3之后,$1=four
,$2=five
和$3=six
。
发布于 2018-04-11 23:20:46
shift
把命令行参数当作一个先进先出队列,它在每次被调用时都会抛出一个元素。
array = [a, b, c]
shift equivalent to
array.popleft
[b, c]
$1, $2,$3 can be interpreted as index of the array.
bash - The advantage of shift over reassign value straightforward - Stack Overflow
https://stackoverflow.com/questions/10414391
复制相似问题