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为止
此外,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]$
原文地址:https://www.cnblogs.com/yu-sheng/p/9851290.html
时间: 2024-10-19 08:25:28