首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Shell shift程序-这是什么?

Shell shift程序-这是什么?
EN

Stack Overflow用户
提问于 2012-05-02 21:07:08
回答 2查看 47.1K关注 0票数 19

在shell中,我们有命令shift,但我在一些示例中看到它提供了shift 3

为什么在换班后会有一个数字?这是关于什么的?它是做什么的?

示例:

代码语言:javascript
复制
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

输出将为:

代码语言:javascript
复制
arg1= 1 arg2=2  arg3=3 
arg1= 2 arg2=3  arg3= 
arg1= 3 arg2=   arg3=
arg1=   arg2=   arg3=

但当我添加它时,它不能正确显示它。

EN

回答 2

Stack Overflow用户

发布于 2012-05-02 21:11:02

看看man页面,上面写着:

代码语言:javascript
复制
shift [n]
    The  positional parameters from n+1 ... are renamed to $1 .... 
    If n is not given, it is assumed to be 1.

示例脚本:

代码语言:javascript
复制
#!/bin/bash
echo "Input: $@"
shift 3
echo "After shift: $@"

运行它:

代码语言:javascript
复制
$ 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

票数 49
EN

Stack Overflow用户

发布于 2018-04-11 23:20:46

shift把命令行参数当作一个先进先出队列,它在每次被调用时都会抛出一个元素。

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10414391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档