Shell shift的使用方法
目錄
命令解釋
實(shí)例一
示例二
命令解釋
位置參數(shù)可以用shift命令左移。比如shift 3表示原來(lái)的$4現(xiàn)在變成$1,原來(lái)的$5現(xiàn)在變成$2等等,原來(lái)的$1、$2、$3丟棄,$0不移動(dòng)。不帶參數(shù)的shift命令相當(dāng)于shift 1。
非常有用的 Unix 命令:shift。我們知道,對(duì)于位置變量或命令行參數(shù),其個(gè)數(shù)必須是確定的,或者當(dāng) Shell 程序不知道其個(gè)數(shù)時(shí),可以把所有參數(shù)一起賦值給變量$*。若用戶要求 Shell 在不知道位置變量個(gè)數(shù)的情況下,還能逐個(gè)的把參數(shù)一一處理,也就是在 $1 后為 $2,在 $2 后面為 $3 等。在 shift 命令執(zhí)行前變量 $1 的值在 shift 命令執(zhí)行后就不可用了。
實(shí)例一
[root@localhost opt]# cat abc.sh until [ $# -eq 0 ] doecho "第一個(gè)參數(shù)為: $1 參數(shù)個(gè)數(shù)為: $#"shift done結(jié)果
[root@localhost opt]# bash abc.sh 1 2 3 4 第一個(gè)參數(shù)為: 1 參數(shù)個(gè)數(shù)為: 4 第一個(gè)參數(shù)為: 2 參數(shù)個(gè)數(shù)為: 3 第一個(gè)參數(shù)為: 3 參數(shù)個(gè)數(shù)為: 2 第一個(gè)參數(shù)為: 4 參數(shù)個(gè)數(shù)為: 1從上可知 shift 命令每執(zhí)行一次,變量的個(gè)數(shù)($#)減一,而變量值提前一位,下面代碼用 until 和 shift 命令計(jì)算所有命令行參數(shù)的和。
示例二
[root@localhost opt]# cat abc.sh if [ $# -eq 0 ]; thenecho "Usage:x_shift2.sh 參數(shù)"exit 1 fisum=0 until [ $# -eq 0 ] dosum=`expr $sum + $1`shift done echo "sum is: $sum"結(jié)果
[root@localhost opt]# bash abc.sh 11 22 33 sum is: 66????????Shift 命令還有另外一個(gè)重要用途, Bash 定義了9個(gè)位置變量,從 $1 到 $9,這并不意味著用戶在命令行只能使用9個(gè)參數(shù),借助 shift 命令可以訪問(wèn)多于9個(gè)的參數(shù)。
Shift 命令一次移動(dòng)參數(shù)的個(gè)數(shù)由其所帶的參數(shù)指定。例如當(dāng) shell 程序處理完前九個(gè)命令行參數(shù)后,可以使用 shift 9 命令把 $10 移到 $1。
總結(jié)
以上是生活随笔為你收集整理的Shell shift的使用方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: PyCharm安装Twisted库(报错
- 下一篇: python模块、字符编码、文件读写