shell变量------shift

Posted yu-sheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell变量------shift相关的知识,希望对你有一定的参考价值。

shift 语句

shift语句按照如下方式重新命名所有的位置参数变量,即$2成为$1,$3成为$2...在程序中每使用一次shift语句,都使所有的位置参数依次向左移动一个位置,并使位置参数$#减1,直到减到0为止。

示例:

技术分享图片
[[email protected] /ibas]$ set -- "I am" handsome boy
[[email protected] /ibas]$ echo $#
3
[[email protected] /ibas]$ echo $1 
I am
[[email protected] /ibas]$ echo $2
handsome
[[email protected] /ibas]$ echo $3
boy
[[email protected] /ibas]$ shift
[[email protected] /ibas]$ echo $#
2
[[email protected] /ibas]$ echo $1
handsome
[[email protected] /ibas]$ echo $2
boy
[[email protected] /ibas]$ echo $3

[[email protected] /ibas]$ shift
[[email protected] /ibas]$ echo $#
1
[[email protected] /ibas]$ echo $1
boy
[[email protected] /ibas]$ echo $2

[[email protected] /ibas]$ shift
[[email protected] /ibas]$ echo $#
0
[[email protected] /ibas]$ echo $1

[[email protected] /ibas]$ 
#一共有三个参数,每执行一次shift参数前移一次,参数个数减一,一直到减到0为止
View Code

此外,Shift 命令还有另外一个重要用途, Bsh 定义了9个位置变量,从 $1 到 $9,这并不意味着用户在命令行只能使用9个参数,借助 shift 命令可以访问多于9个的参数。Shift 命令一次移动参数的个数由其所带的参数指定。例如当 shell 程序处理完前九个命令行参数后,可以使用 shift 9 命令把 $10 移到 $1。

技术分享图片
[[email protected] /ibas]$ set -- "I am" a handsome boy
[[email protected] /ibas]$ echo $#
4
[[email protected] /ibas]$ echo $1
I am
[[email protected] /ibas]$ echo $2
a
[[email protected] /ibas]$ echo $3
handsome
[[email protected] /ibas]$ echo $4
boy
[[email protected] /ibas]$ echo $1
I am
[[email protected] /ibas]$ shift 3
[[email protected] /ibas]$ echo $1
boy
[[email protected] /ibas]$ 
View Code

 

以上是关于shell变量------shift的主要内容,如果未能解决你的问题,请参考以下文章

Shell 编程基础

shell中的shift关键字作用

Bash的变量类型

shell 编程 之 小技巧

Notes8变量,别名,重定向,/until,shift,函数,/test,运算,流程控制

Linux bash基础特性二