亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

shell腳本處理命令行參數

2019-11-14 09:27:04
字體:
來源:轉載
供稿:網友

在運行腳本程序中,用戶可以通過命令行參數將參數傳遞給腳本程序:

# ./test 10 a通過一些特殊的變量:位置參數,可以在腳本中取得命令行參數。其中,$0為程序名稱,$1為第一個參數,$2為第二個參數,依此類推 $9為第九個參數。
# cat test.sh #!/bin/bashecho "shell name is $0"echo "first args is $1"echo "second args is $2"# ./test.sh shell name is ./test.shfirst args is second args is # ./test.sh  1 2 shell name is ./test.shfirst args is 1second args is 2在第一次運行./test.sh時,沒有傳入參數,可以看出$1,$2值為空。每個參數都是通過空格分隔的,如果輸入的參數中包含空格,要用引號(" "或' ‘)包起來。
# ./test.sh  "hello world!" 2shell name is ./test.shfirst args is hello world!second args is 2
如果命令行參數多于9個,如果想取得后面的參數,使用${10},${11}..,$(n)取得。雖然我們可以通過$0確定程序的名稱,但是$0中包括程序完整的路徑。
# cat test.sh#!/bin/bashecho "shell name is $0"# ./test.shshell name is ./test.sh# /home/jie/code/shellcode/test.sh shell name is /home/jie/code/shellcode/test.sh有時候我們僅僅想獲得程序的名稱(不包括具體路徑),可以使用basename命令取得程序名稱(name=`basename $0`)。
# cat test.sh#!/bin/bashname=`basename $0`echo "shell name is $name"# ./test.shshell name is test.sh# /home/jie/code/shellcode/test.sh shell name is test.sh在使用shell腳本中的命令行參數之前,必須對參數進行檢查,以保證命令行參數中確實包含我們想要的數據。
$ cat test.sh#!/bin/bashif [ -n "$1" ]then   echo "hello $1!"else   echo "Please input a name!"fi$ ./test.sh mikehello mike!$ ./test.sh Please input a name!2、特殊的參數變量在bash shell中有一些特殊的參數變量,用于跟蹤命令行參數。

(1)命令行參數個數變量$#記錄了腳本啟動時的命令行參數的個數。

# cat test.sh#!/bin/bashecho "the count of args is : $#"# ./test.sh 1 2 3 4 the count of args is : 4# ./test.sh 1 2 3 4 5 6 "hello"the count of args is : 7(2)命令行所有參數變量$*和$@包含了全部命令行參數(不包括程序名稱$0),變量$*將命令行的所有參數作為一個整體處理。而$@將所有參數當作同一個字符串的多個單詞處理,允許對其中的值進行迭代。
# cat test.sh #!/bin/bashecho "Using the /$* method:$*"echo "Using the /$@ method:$@"# ./test.sh 1 2 3 Using the $* method:1 2 3Using the $@ method:1 2 3下面這個例子展示了$*和$@的不同之處
# cat test.sh#!/bin/bashcount=1for param in "$*"do    echo "/$* Parameter #$count = $param"    count=$[$count+1]donecount=1for param in "$@"do    echo "/$@ Parameter #$count = $param"    count=$[$count+1]done# ./test.sh 1 2 3$* Parameter #1 = 1 2 3$@ Parameter #1 = 1$@ Parameter #2 = 2$@ Parameter #3 = 33、命令行參數移位bash shell提供shift命令幫助操作命令行參數,shift命令可以改變命令行參數的相對位置,默認將每個參數左移一個位置,$3的值移給$2,$2的值移給$1,$1的值被丟棄。注意:$0的值和位置不受shift命令影響。$1移掉后,該參數值就丟失了,不能恢復。
# cat test.sh#!/bin/bashcount=1while [ -n "$1" ]do  echo "Parameter #$count = $1"  count=$[$count+1]  shiftdoneecho "/$#=$#"echo "/$*=$*"echo "/$@=$@"echo "/$1=$1"# ./test.sh 1 2 3 Parameter #1 = 1Parameter #2 = 2Parameter #3 = 3$#=0$*=$@=$1=shift命令可以帶一個參數實現多位移變化,命令行參數向左多個位置。
# cat test.sh#!/bin/bashecho "The origin parameters are:$*"shift 2echo "after shift 2 the parameters are:$*"# ./test.sh 1 2 3 4 5 The origin parameters are:1 2 3 4 5after shift 2 the parameters are:3 4 5 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产视频久久网| 欧美国产日韩一区| 日韩欧美一区二区在线| 久久久日本电影| 欧美老肥婆性猛交视频| 欧美精品久久久久a| 亚洲国产女人aaa毛片在线| 国产欧美日韩精品丝袜高跟鞋| 国模私拍视频一区| 亚洲电影成人av99爱色| 亚洲石原莉奈一区二区在线观看| 日韩高清电影好看的电视剧电影| 在线精品国产成人综合| 久久91精品国产91久久久| 国产91精品久久久久久| 免费不卡欧美自拍视频| 亚洲自拍偷拍色图| 欧美激情视频在线观看| 亚洲欧洲日韩国产| 日本精品久久久久影院| 日本亚洲欧洲色α| 成人免费看片视频| 91社区国产高清| 亚洲美女性视频| 欧美午夜丰满在线18影院| 欧美成人全部免费| 日韩中文字幕网址| 亚洲综合成人婷婷小说| 国产视频久久久| 日本精品视频在线观看| 精品久久中文字幕久久av| 欧美老女人在线视频| 日韩av在线网页| 亚洲午夜久久久久久久| 日本中文字幕成人| 性欧美在线看片a免费观看| 亚洲精品一区av在线播放| 成人激情在线播放| 日韩精品中文字| 日韩av在线电影网| 色老头一区二区三区| 欧美视频中文字幕在线| 日韩久久精品电影| 久久久免费高清电视剧观看| 欧美大片在线免费观看| 亚洲一区二区三区成人在线视频精品| 欧亚精品中文字幕| 欧美日韩国产限制| 久久久国产视频91| 久久久成人精品视频| 久久99青青精品免费观看| 国产精品高潮呻吟视频| 久久亚洲精品国产亚洲老地址| 日韩精品中文字幕视频在线| 丰满岳妇乱一区二区三区| 欧美成人午夜视频| 欧美黑人xxx| 亚洲第一区第一页| 欧美精品videosex牲欧美| 日韩精品高清视频| 成人免费大片黄在线播放| 国产精品久久久久免费a∨大胸| 精品日韩美女的视频高清| 一本大道久久加勒比香蕉| 日韩精品高清在线| 亚洲欧美资源在线| 欧美日韩国产精品| 国产91ⅴ在线精品免费观看| 性欧美长视频免费观看不卡| 欧美诱惑福利视频| 色综合久综合久久综合久鬼88| 2018国产精品视频| 国产精品免费视频xxxx| 欧美激情videoshd| 日韩精品久久久久久福利| 久久综合色88| 国产精品私拍pans大尺度在线| 国产极品jizzhd欧美| 欧美韩国理论所午夜片917电影| 57pao成人国产永久免费| 欧美另类极品videosbest最新版本| 欧美三级欧美成人高清www| 久久久噜久噜久久综合| 91天堂在线观看| 国产精品最新在线观看| 亚洲奶大毛多的老太婆| 中文字幕精品在线视频| 国产精品va在线播放我和闺蜜| 精品欧美一区二区三区| 成人黄色av播放免费| 黄色一区二区在线| 国产精品久久久久久亚洲影视| 欧美重口另类videos人妖| 国产女人18毛片水18精品| 国产不卡精品视男人的天堂| 91禁国产网站| 国产精品青草久久久久福利99| 日韩成人黄色av| 奇米一区二区三区四区久久| 国产精品免费看久久久香蕉| www.亚洲免费视频| 成人精品久久一区二区三区| 国产欧美在线视频| 午夜精品99久久免费| 欧美黄网免费在线观看| 亚洲free嫩bbb| 中文亚洲视频在线| 在线一区二区日韩| 日韩欧美黄色动漫| 欧美专区在线播放| 精品日本美女福利在线观看| 欧美日韩另类在线| 久久精视频免费在线久久完整在线看| 国产精品久久久久久久久久三级| 2018中文字幕一区二区三区| 国产精品99久久99久久久二8| 色噜噜狠狠色综合网图区| 国产免费久久av| 亚洲欧洲视频在线| 亚洲自拍偷拍网址| 欧美在线一级视频| 欧美性猛交xxxx黑人| 清纯唯美日韩制服另类| 亚洲成人久久电影| 国产精品一二区| 久久精品国产v日韩v亚洲| 亚洲毛片在线看| 欧美激情第三页| 国产精品日韩在线观看| 97精品在线视频| 欧美最顶级的aⅴ艳星| 亚洲精品aⅴ中文字幕乱码| 欧美大秀在线观看| 在线性视频日韩欧美| 麻豆一区二区在线观看| 九九精品在线视频| 欧美成人精品在线视频| 亚洲女人天堂成人av在线| 亚洲国产小视频在线观看| 欧美激情视频在线免费观看 欧美视频免费一| 高跟丝袜一区二区三区| 久久久这里只有精品视频| 亚洲免费伊人电影在线观看av| 国产精品一区电影| 国产乱肥老妇国产一区二| 在线一区二区日韩| 久久久亚洲欧洲日产国码aⅴ| 色老头一区二区三区| 亚洲成色777777在线观看影院| 国产精品精品一区二区三区午夜版| 欧美韩日一区二区| 成人午夜激情网| 日本一区二三区好的精华液| 日韩av男人的天堂| 欧美日韩中文字幕在线| 最近2019年中文视频免费在线观看| 奇门遁甲1982国语版免费观看高清| 久久精品国产欧美亚洲人人爽| 中日韩午夜理伦电影免费| 亚洲国语精品自产拍在线观看| 91精品国产高清自在线看超| 国产一区二区丝袜高跟鞋图片| 日韩国产欧美精品一区二区三区| 精品人伦一区二区三区蜜桃免费|