国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

shell腳本命令行參數(shù)簡介

2019-10-26 18:40:10
字體:
供稿:網(wǎng)友


之所以用到命令行參數(shù),關(guān)鍵在于shell腳本需要與運行腳本的人員進(jìn)行交互。
bash shell提供了命令行參數(shù)添加在命令后面的數(shù)據(jù)值)、命令行選項修改命令行為的單字符值)和直接讀取鍵盤輸入。

1、命令行參數(shù)
向shell腳本傳遞數(shù)據(jù)的最基本方式是使用命令行參數(shù)。

1)讀取參數(shù)
讀取輸入的參數(shù)的變量為位置參數(shù),位置參數(shù)通過標(biāo)準(zhǔn)數(shù)字表示,
其中$0為程序名稱,$1為第一個參數(shù),$2為第二個參數(shù),依次類推,直到$9為第九個參數(shù)。
shell腳本自動將命令行參數(shù)賦值給各個位置變量。
同時輸入多個參數(shù)可以是數(shù)值也可以是字符串)時,必須使用空格分隔要想在參數(shù)值中包含空格,就必須使用單引號或雙引號)
當(dāng)參數(shù)多于9個后,必須在shell腳本內(nèi)使用大括號將變量括起來,如${10}。從而可以使用任意個參數(shù)。

2)讀取程序名稱
傳遞給變量$0的字符串實際上是程序的路徑根據(jù)調(diào)用方法決定是相對還是絕對路徑)。
使用basename命令可以去掉路徑前綴,只獲得程序名稱名字中不 可以有空格)。

3)測試腳本
當(dāng)腳本認(rèn)為應(yīng)該包含參數(shù),卻實際上沒有數(shù)據(jù)時,就會出錯。
好的方法是對參數(shù)進(jìn)行檢查來保證使用參數(shù)前確實存在數(shù)據(jù),可以使用-n參數(shù)來檢查。
例子:if [ –n “$1” ] then .. else .. fi

2、特殊的參數(shù)變量
用于跟蹤命令行參數(shù)

1)參數(shù)計數(shù)
使用特殊變量$#測試執(zhí)行腳本時包含的命令行參數(shù)個數(shù)。腳本中任何位置都可以 使用$#
例子:if [ $# –ne 2 ] 即可測試參數(shù)個數(shù)
可以使用${!#}來返回最后一個命令行參數(shù)當(dāng)無參數(shù)時,$#為0,而${!#}為程序名)

2)獲取所有數(shù)據(jù)
變量$*將命令行中提供的所有參數(shù)作為一個單詞處理,它將多個參數(shù)看成 一個參數(shù)。
變量$@將命令行中提供的所有參數(shù)作為同一個字符串中的多個單詞處理。 允許對其中的值進(jìn)行迭代一般使用for),分隔開不同參數(shù)

3、移位
shift命令能夠改變命令行參數(shù)的相對位置。默 認(rèn)將每個參數(shù)變量左移一個位置變量$0不變,把$1丟棄,注意不可以恢復(fù)了!)
在不清楚參數(shù)數(shù)目情況下,這是一個迭代參數(shù)的好辦法。
可以為shift提供一個參數(shù),來實現(xiàn)多位移變化。

4、處理選項
選項是由破折號引導(dǎo)的單個字母,用于更改命令的行為。

1,找出選項
1)處理簡單選項
可以使用處理命令行參數(shù)相同的方法處理選項,抽取時使用case語句進(jìn)行判斷是否符合選項格式。
2)從參數(shù)中分離選項
同時使用選項和參數(shù)時,可以使用--指示選項列表的結(jié)束。發(fā)現(xiàn)--后,shell就知道后面的是普通參數(shù)了,停止使用case處理選項。
3)處理帶值的選項
選項后緊跟參數(shù)值,一種方法是在case中對應(yīng)選項后使用shift和讀后一位參數(shù)的方法處理。更好的方法如 下:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 什邡市| 台湾省| 沂源县| 安岳县| 湖北省| 凉山| 盘山县| 平南县| 蒙城县| 大关县| 阿巴嘎旗| 江西省| 乾安县| 宝清县| 容城县| 洱源县| 张家港市| 霸州市| 息烽县| 泰来县| 永春县| 河南省| 禄丰县| 新巴尔虎左旗| 弥渡县| 丹凤县| 玛多县| 外汇| 南汇区| 石狮市| 祁连县| 琼海市| 肇东市| 海盐县| 司法| 固镇县| 宣恩县| 眉山市| 石柱| 西吉县| 德昌县|