婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > shell腳本命令行參數(shù)簡介

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

熱門標(biāo)簽:客服外呼系統(tǒng)怎么樣 百度地圖標(biāo)注錯了有責(zé)任嗎 打電話機(jī)器人接我是他的秘書 如果做線上地圖標(biāo)注 江蘇云電銷機(jī)器人公司 地圖標(biāo)注員都是年輕人 河南信譽好的不封卡電話外呼系統(tǒng) 華鋒e路航港口地圖標(biāo)注 揭陽智能電話機(jī)器人推薦


之所以用到命令行參數(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ù)了?。?BR>在不清楚參數(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ù)的方法處理。更好的方法如 下:

2,使用getopt命令
getopt命令在處理選項和參數(shù)時非常方便。它對參數(shù)進(jìn)行重新組 織,以便于解析
1)命令格式
getopt可以接受任意形式的選項和參數(shù)列表,并自動將它們轉(zhuǎn)換為適當(dāng)?shù)母袷健?BR>命令格式為: getopt options optstring parameters
選項字符串(opstring)用于定義命令行中的有效選項字母,以及哪些選項字母需要參數(shù)值。
2)腳本中使用getopt
需要使用set命令將現(xiàn)有的命令行選項和參數(shù)替換為getopt命令生成的 格式化形式。
需要將原始腳本命令行參數(shù)送給getopt命令,然后將getopt命令輸出送給set命令,如下:set – `getopts –q ab:cd “$@”`
但是getopt命令不能很好的處理帶有空格的參數(shù)值,它將空格解析為參數(shù)分隔符,而不是將雙引號引起來的兩個 值合并成一個參數(shù)。解決辦法如下:
3)更高級的getopts命令
getopts命令順序的對現(xiàn)有的shell參數(shù)變量進(jìn)行處理,每調(diào)用一次,只處理命令中檢測到的參數(shù)中的一個。處理完所有參數(shù)后,以大于0的退出 狀態(tài)退出。
非常適宜于在循環(huán)中解析所有命令行參數(shù)
格式為: getopts optstring variable
$optarg包含需要參數(shù)值的選項要使用的值,$optind包含getopts停止處理時在參數(shù)列表中的位置。
注意:當(dāng)getopts處理時,會將選項前的-去掉,所以對應(yīng)的case中不需要破折號。

好的特性:
1)可以在參數(shù)值中包含空格
2)選項字母和參數(shù)值中間可以沒有空格
3)將在命令行中找到的未定義的選項都綁定為單一的輸出——問號

5、標(biāo)準(zhǔn)化選項
有一些字母選項具有標(biāo)準(zhǔn)含義。最好按照標(biāo)準(zhǔn)含義定義選項意義
-a –c –d –e –f –h –i –l –n –o –q –r –s –v- x –y

6、獲取用戶輸入
當(dāng)需要在執(zhí)行過程中獲得執(zhí)行腳本人員的輸入,使用read命令
1)基本讀取
read命令接受標(biāo)準(zhǔn)輸入或其他文件描述符輸入。讀入后將數(shù)據(jù)放入 一個標(biāo)準(zhǔn)變量中。
-p 允許在read命令行中直接指定一個提示。
可以指定多個變量,也可以不指定將放置在reply環(huán)境變量中)
2)計時
使用-t指定一個計時器,計時數(shù)滿還未輸入,read返回一個非0的退出狀態(tài)。
使用-n指定輸入的字符個數(shù),輸入達(dá)到預(yù)定數(shù)目時,就自動結(jié)束輸入
3)默讀
使用-s使輸入不顯示在終端例如輸入密碼)
4)讀取文件
最常用的方法是使用cat命令,并通過管道傳給包含read的while語句。
例子:
復(fù)制代碼 代碼示例:

復(fù)制代碼 代碼如下:
cat test | while read line

您可能感興趣的文章:
  • Shell腳本中判斷輸入?yún)?shù)個數(shù)的方法
  • linux shell命令行選項與參數(shù)用法詳解
  • Shell腳本中判斷輸入變量或者參數(shù)是否為空的方法
  • linux shell命令行參數(shù)用法詳解
  • 對shell中常見參數(shù)及判斷命令介紹

標(biāo)簽:婁底 淘寶邀評 馬鞍山 巴彥淖爾 邵陽 赤峰 許昌 金昌

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《shell腳本命令行參數(shù)簡介》,本文關(guān)鍵詞  shell,腳本,命令行,參數(shù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《shell腳本命令行參數(shù)簡介》相關(guān)的同類信息!
  • 本頁收集關(guān)于shell腳本命令行參數(shù)簡介的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 遵化市| 英超| 泸州市| 南昌县| 陈巴尔虎旗| 阜阳市| 普格县| 麻江县| 黄龙县| 镇坪县| 琼海市| 沂水县| 花垣县| 柳州市| 临漳县| 武乡县| 商水县| 大宁县| 获嘉县| 大名县| 霍州市| 普陀区| 全椒县| 德昌县| 汤阴县| 罗田县| 肇东市| 莱州市| 响水县| 甘孜| 九龙坡区| 阳山县| 呈贡县| 邹平县| 安陆市| 大埔区| 庆安县| 柳州市| 武宣县| 茶陵县| 九龙坡区|