精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何在 Bash shell 腳本中解析命令行選項(xiàng)

運(yùn)維 系統(tǒng)運(yùn)維
關(guān)于命令行界面的 POSIX 規(guī)范 中就對(duì)選項(xiàng)做出了規(guī)范,這也是最早的 UNIX 應(yīng)用程序建立的一個(gè)由來(lái)已久的慣例,因此你在創(chuàng)建自己的命令時(shí),最好知道如何將選項(xiàng)包含進(jìn) Bash 腳本 中。
  • 給你的 shell 腳本添加選項(xiàng)。

終端命令通常具有 選項(xiàng)或開(kāi)關(guān),用戶(hù)可以使用它們來(lái)修改命令的執(zhí)行方式。關(guān)于命令行界面的 POSIX 規(guī)范 中就對(duì)選項(xiàng)做出了規(guī)范,這也是最早的 UNIX 應(yīng)用程序建立的一個(gè)由來(lái)已久的慣例,因此你在創(chuàng)建自己的命令時(shí),最好知道如何將選項(xiàng)包含進(jìn) Bash 腳本 中。

[[420224]]

與大多數(shù)語(yǔ)言一樣,有若干種方法可以解決 Bash 中解析選項(xiàng)的問(wèn)題。但直到今天,我最喜歡的方法仍然是我從 Patrick Volkerding 的 Slackware 構(gòu)建腳本中學(xué)到的方法,當(dāng)我第一次發(fā)現(xiàn) Linux 并敢于冒險(xiǎn)探索操作系統(tǒng)所附帶的純文本文件時(shí),這些腳本就是我的 shell 腳本的引路人。

Bash 中的選項(xiàng)解析

在 Bash 中解析選項(xiàng)的策略是循環(huán)遍歷所有傳遞給 shell 腳本的參數(shù),確定它們是否是一個(gè)選項(xiàng),然后轉(zhuǎn)向下一個(gè)參數(shù)。重復(fù)這個(gè)過(guò)程,直到?jīng)]有選項(xiàng)為止。

  1. #!/bin/bash 
  2. while [ True ]; do 
  3. if [ "$1" = "--alpha" -o "$1" = "-a" ]; then 
  4.     ALPHA=1 
  5.     shift 1 
  6. else 
  7.     break 
  8. fi 
  9. done 
  10. echo $ALPHA 

在這段代碼中,我創(chuàng)建了一個(gè) while 循環(huán),它會(huì)一直進(jìn)行循環(huán)操作,直到處理完所有參數(shù)。if 語(yǔ)句會(huì)試著將在第一個(gè)位置($1)中找到的參數(shù)與 --alpha 或 -a 匹配。(此處的待匹配項(xiàng)是任意選項(xiàng)名稱(chēng),并沒(méi)有特殊意義。在實(shí)際的腳本中,你可以使用 --verbose 和 -v 來(lái)觸發(fā)詳細(xì)輸出)。

shift 關(guān)鍵字會(huì)使所有參數(shù)位移一位,這樣位置 2($2)的參數(shù)移動(dòng)到位置 1($1)。處理完所有參數(shù)后會(huì)觸發(fā) else 語(yǔ)句,進(jìn)而中斷 while 循環(huán)。

在腳本的末尾,$ALPHA 的值會(huì)輸出到終端。

測(cè)試一下這個(gè)腳本:

  1. $ bash ./test.sh --alpha 
  2. $ bash ./test.sh 
  3. $ bash ./test.sh -a 

可以看到,選項(xiàng)被正確地檢測(cè)到了。

在 Bash 中檢測(cè)參數(shù)

但上面的腳本還有一個(gè)問(wèn)題:多余的參數(shù)被忽略了。

  1. $ bash ./test.sh --alpha foo 

要想捕獲非選項(xiàng)名的參數(shù),可以將剩余的參數(shù)轉(zhuǎn)儲(chǔ)到 Bash 數(shù)組 中。

  1. #!/bin/bash 
  2. while [ True ]; do 
  3. if [ "$1" = "--alpha" -o "$1" = "-a" ]; then 
  4.     ALPHA=1 
  5.     shift 1 
  6. else 
  7.     break 
  8. fi 
  9. done 
  10. echo $ALPHA 
  11. ARG=( "${@}" ) 
  12. for i in ${ARG[@]}; do 
  13.     echo $i 
  14. done 

測(cè)試一下新版的腳本:

  1. $ bash ./test.sh --alpha foo 
  2. foo 
  3. $ bash ./test.sh foo 
  4. foo 
  5. $ bash ./test.sh --alpha foo bar 
  6. foo 
  7. bar 

帶參選項(xiàng)

有一些選項(xiàng)需要傳入?yún)?shù)。比如,你可能希望允許用戶(hù)設(shè)置諸如顏色或圖形分辨率之類(lèi)的屬性,或者將應(yīng)用程序指向自定義配置文件。

要在 Bash 中實(shí)現(xiàn)這一點(diǎn),你仍然可以像使用布爾開(kāi)關(guān)一樣使用 shift 關(guān)鍵字,但參數(shù)需要位移兩位而不是一位。

  1. #!/bin/bash 
  2. while [ True ]; do 
  3. if [ "$1" = "--alpha" -o "$1" = "-a" ]; then 
  4.     ALPHA=1 
  5.     shift 1 
  6. elif [ "$1" = "--config" -o "$1" = "-c" ]; then 
  7.     CONFIG=$2 
  8.     shift 2 
  9. else 
  10.     break 
  11. fi 
  12. done 
  13. echo $ALPHA 
  14. echo $CONFIG 
  15. ARG=( "${@}" ) 
  16. for i in ${ARG[@]}; do 
  17.     echo $i 
  18. done 

在這段代碼中,我添加了一個(gè) elif 子句來(lái)將每個(gè)參數(shù)與 --config 和 -c 進(jìn)行比較。如果匹配,名為 CONFIG 的變量的值就設(shè)置為下一個(gè)參數(shù)的值(這就表示 --config 選項(xiàng)需要一個(gè)參數(shù))。所有參數(shù)都位移兩位:其中一位是跳過(guò) --config 或 -c,另一位是跳過(guò)其參數(shù)。與上節(jié)一樣,循環(huán)重復(fù)直到?jīng)]有匹配的參數(shù)。

下面是新版腳本的測(cè)試:

  1. $ bash ./test.sh --config my.conf foo bar 
  2. my.conf 
  3. foo 
  4. bar 
  5. $ bash ./test.sh -a --config my.conf baz 
  6. my.conf 
  7. baz 

Bash 讓選項(xiàng)解析變得簡(jiǎn)單

還有一些其他方法也可以解析 Bash 中的選項(xiàng)。你可以替換使用 case 語(yǔ)句或 getopt 命令。無(wú)論使用什么方法,給你的用戶(hù)提供選項(xiàng)都是應(yīng)用程序的重要功能,而 Bash 讓解析選項(xiàng)成為了一件簡(jiǎn)單的事。

責(zé)任編輯:未麗燕 來(lái)源: Linux中國(guó)
相關(guān)推薦

2023-02-07 09:49:26

Linux命令行合并文件

2021-08-19 14:27:56

Java應(yīng)用程序解析方法

2014-06-17 10:02:58

Bash Getopt命令行

2022-10-14 19:30:29

Linux

2019-08-15 15:00:31

Linux命令行PDF

2022-11-23 08:14:42

bash 腳本test 命令

2022-11-03 08:13:52

echo 命令Linux

2019-04-12 15:25:15

Fedora 30內(nèi)核命令行

2016-10-12 08:38:24

Windows 10Defender命令行

2019-08-27 08:00:10

OpenStack命令虛擬機(jī)

2018-02-01 17:32:30

LinuxUNIXBash Shell

2009-12-25 17:05:09

LINUX Bash

2018-04-25 10:46:05

Linux命令行日歷

2023-08-12 11:40:11

命令行生存

2014-05-04 10:58:18

Linux命令行Linux發(fā)行版

2023-10-19 14:52:27

2018-01-24 18:30:53

瀏覽器Firefox命令行

2018-08-22 09:40:27

2009-07-20 09:55:30

華為命令行解析華為認(rèn)證

2010-08-20 10:05:23

用戶(hù)命令
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

www.-级毛片线天内射视视| 亚州精品天堂中文字幕| 国产一区香蕉久久| 夫妻性生活毛片| 久久夜色精品国产噜噜av小说| 26uuu精品一区二区| 日本亚洲精品在线观看| 97精品在线播放| 成人在线超碰| 欧美视频一区二区在线观看| 国产一区 在线播放| 毛片在线能看| 国内精品视频一区二区三区八戒| 久久99视频免费| 亚洲图片另类小说| 久久国产精品美女| 欧美丝袜第三区| 国产免费黄色一级片| 91最新在线| 久久看片网站| 欧美老少配视频| 手机免费看av| 欧美黑人做爰爽爽爽| 欧美乱妇15p| aa免费在线观看| 青春草视频在线| 亚洲欧洲av在线| 欧美精品一区在线| 日韩中文字幕观看| 欧美.日韩.国产.一区.二区| 日韩av在线播放资源| 亚洲精品无码国产| 老司机在线视频二区| 国产午夜亚洲精品羞羞网站| 国产乱码一区| 国产黄a三级三级三级| 蜜桃一区二区三区在线| 国产91在线高潮白浆在线观看| 日本在线视频免费| 欧美精品综合| www亚洲欧美| 天堂av免费在线| 欧美日韩精品在线一区| 亚洲欧美综合v| 天堂av在线网站| 亚洲天堂av在线| 午夜视频一区在线观看| 公共露出暴露狂另类av| 免费看美女视频在线网站| 日本一区二区免费在线| 日本在线观看一区二区三区| 久久久久久青草| 久久久久久电影| 欧洲精品久久| 男女污污视频在线观看| 久久网这里都是精品| 久久本道综合色狠狠五月| 污视频网站在线播放| 成人少妇影院yyyy| 国内精品一区二区| 天天干视频在线观看| 91尤物视频在线观看| 蜜桃导航-精品导航| 中文字幕免费观看视频| 日韩 欧美一区二区三区| 国产成人精品综合| 成人黄色片在线观看| 日韩成人伦理电影在线观看| 国产精品久久久久久搜索| www.亚洲激情| 精品制服美女久久| 99国产精品久久久久老师| 免费黄色网址在线| 久久国产免费| 欧美噜噜久久久xxx| 国模无码国产精品视频| 精品成人免费| 欧美洲成人男女午夜视频| 欧美第一页在线观看| 国产精品久久久久久久| 欧美裸体男粗大视频在线观看| 久久久久久蜜桃| 国产亚洲一区在线| 国产精品av免费在线观看| 国产又粗又黄又爽的视频| 国产黄色91视频| 久久一区二区精品| 成人影视在线播放| 亚洲免费观看高清完整版在线观看熊| 日韩一级性生活片| 欧美va视频| 日韩精品最新网址| 黄色aaa视频| 欧美在线二区| 热99久久精品| 99久久久久成人国产免费| 久久综合网络一区二区| 成人黄在线观看| 天天操天天爱天天干| 中文字幕成人在线观看| 欧美极品色图| 黄色片网站在线| 福利一区福利二区微拍刺激| 中文字幕国产免费| 日本精品影院| 久久影院模特热| 久久精品视频5| 国产高清在线观看免费不卡| 青青成人在线| sm性调教片在线观看| 欧美日韩夫妻久久| 国产黄色网址在线观看| 欧美日本三区| 国产免费一区二区三区在线观看| 蜜桃av中文字幕| 亚洲视频免费在线观看| 国产成人手机视频| 激情小说一区| 久久99精品国产99久久6尤物| 黄色污污视频软件| 97精品国产97久久久久久久久久久久| 久久视频免费在线| 国产第一精品| 亚洲日韩欧美视频一区| 国产精品suv一区二区| 久久99精品久久久久久国产越南| 欧美凹凸一区二区三区视频| 草草影院在线| 欧美色另类天堂2015| 春日野结衣av| 亚洲免费一区三区| 久久婷婷国产麻豆91天堂| 国产精品传媒在线观看| 久久综合色8888| 两根大肉大捧一进一出好爽视频| 99re8这里有精品热视频8在线| 久久人人爽人人爽人人片亚洲| 最新在线中文字幕| 久久精品网站免费观看| 777久久久精品一区二区三区| 久久动漫网址| 韩国三级电影久久久久久| 精品人妻一区二区三区蜜桃| 18成人在线观看| 欧美视频国产视频| 93在线视频精品免费观看| 国产精品一区二区三区在线播放 | 欧美区一区二区三区| 中文字幕 自拍| 久久只有精品| 涩涩涩999| 久久伊人国产| 日韩在线观看免费av| 国产精品久久久久久久久久久久久久久久 | 97精品视频| 91久久精品国产91久久| 成人国产免费电影| 日韩色在线观看| 日韩 欧美 精品| 91社区在线播放| 人妻无码视频一区二区三区| 精品日韩免费| 91夜夜未满十八勿入爽爽影院| 黄色av电影在线播放| 欧美一区二区成人6969| 国产精品30p| 久久久久久久久99精品| 天天色综合天天色| 午夜国产精品视频免费体验区| 国产不卡一区二区在线观看| 伊人久久视频| 中文字幕日韩欧美精品在线观看| 侵犯稚嫩小箩莉h文系列小说| 久久99精品一区二区三区| 欧美精品一区二区性色a+v| aiss精品大尺度系列| 51久久精品夜色国产麻豆| 国产一区二区三区福利| 制服丝袜一区二区三区| 99热精品免费| 久久午夜羞羞影院免费观看| 亚洲美女性囗交| 亚洲国产精品一区| 少妇特黄a一区二区三区| 国产精品99久久免费| 91精品国产91久久久| www 日韩| 亚洲第一福利网站| 成人午夜精品视频| 亚洲国产一二三| 少妇一级黄色片| 国产99久久久国产精品潘金 | 亚州av在线播放| 欧美日韩一区中文字幕| 精品人妻在线播放| 欧美激情一区二区| zjzjzjzjzj亚洲女人| 奇米精品一区二区三区在线观看| 男女激烈动态图| 狠狠操综合网| 狠狠干一区二区| 亚洲成人1区| 日本亚洲精品在线观看| 免费网站在线观看人| 最近2019年手机中文字幕| 日本精品一区二区在线观看| 欧美日高清视频| 亚洲成熟少妇视频在线观看| 一区二区三区欧美久久| 超薄肉色丝袜一二三| 暴力调教一区二区三区| 黄色a级三级三级三级| 日韩电影在线观看网站| 男人日女人视频网站| 中文在线日韩| 亚洲一区二区三区午夜| 国产不卡av一区二区| 国产欧美一区二区三区另类精品 | 正在播放亚洲一区| 无码一区二区三区| 午夜久久久影院| 真实国产乱子伦对白在线| 中日韩av电影| 亚洲图片另类小说| 2021久久国产精品不只是精品| 韩国三级在线看| 国产麻豆精品久久一二三| 天堂在线资源视频| 久久精品日韩欧美| 777精品久无码人妻蜜桃| 韩日视频一区| 妞干网这里只有精品| 欧美激情黄色片| 亚洲免费精品视频| 青草国产精品| 成人黄色大片在线免费观看| 激情开心成人网| 欧美在线一级视频| 欧美男男激情videos| 国内揄拍国内精品少妇国语| 国产第一页在线视频| 欧美第一黄色网| 影音先锋男人资源在线| 免费av一区二区| 97caopron在线视频| 欧美大尺度在线观看| av在线免费观看网址| 久久国产精品久久久久| 最新日本在线观看| 欧美精品在线第一页| 日本小视频在线免费观看| 日韩精品一二三四区| 天堂在线视频网站| 亚洲精品视频久久| 黄色美女网站在线观看| 伊人久久五月天| 麻豆网在线观看| 九九精品在线视频| 黑人精品视频| 性欧美在线看片a免费观看| 免费h在线看| 国产精品mp4| 巨大黑人极品videos精品| 91精品久久久久久久久久另类 | 亚洲午夜精品久久| 国产精品久久久久久| 成人免费网站入口| 国产精品尤物| 性刺激的欧美三级视频| 国产一区二区精品久久| 茄子视频成人免费观看| 要久久电视剧全集免费| 日韩一区不卡| 在线看片不卡| 91国视频在线| 日本女人一区二区三区| 日本亚洲一区二区三区| 菠萝蜜视频在线观看一区| 国产精品高清无码在线观看| 国产精品天天看| 国产一级在线视频| 色综合色狠狠综合色| 国产一区二区麻豆| 亚洲电影在线看| а天堂8中文最新版在线官网| 欧美成人激情视频免费观看| 蜜桃视频在线网站| 91视频国产高清| 神马日本精品| 国产一区一区三区| 性色一区二区三区| 亚洲天堂一区二区在线观看| 91亚洲国产成人精品一区二三 | 欧美顶级大胆免费视频| 18禁裸男晨勃露j毛免费观看| 日韩av网站免费在线| 国产高潮失禁喷水爽到抽搐 | 久久精品视频免费在线观看| 欧美午夜女人视频在线| 99精品国产99久久久久久97| 亚洲毛茸茸少妇高潮呻吟| av片哪里在线观看| 国产精品444| 成人av影音| 国产精品波多野结衣| 久久在线91| 95视频在线观看| 亚洲视频你懂的| 亚洲av综合一区| 国产视频久久久久久久| 青春草免费在线视频| 成人中心免费视频| 国产在线观看91一区二区三区 | 欧美精品一区二区视频| 狠狠色综合网| 天天综合成人网| 国产目拍亚洲精品99久久精品| 日本三级欧美三级| 日韩午夜在线观看| 黄色免费在线观看| 国产精品午夜一区二区欲梦| 天堂俺去俺来也www久久婷婷| 超级碰在线观看| 国产一区欧美一区| 亚洲激情图片网| 欧美在线观看视频一区二区三区 | 久久久av毛片精品| 日韩av一二三区| 日韩你懂的在线观看| 麻豆视频在线观看免费网站| 国产精品嫩草影院久久久| 亚洲精品亚洲人成在线| 99在线精品免费视频| 岛国一区二区在线观看| a级黄色片免费看| 欧美一级xxx| 日本天码aⅴ片在线电影网站| 成人网中文字幕| 小小影院久久| 天天干天天曰天天操| 亚洲少妇30p| 国产色综合视频| 欧美猛男性生活免费| 日本在线视频一区二区三区| 日本黄色播放器| 国产一区二区不卡| 欧美日韩在线视频免费| 日韩精品一区二区在线观看| 女人天堂av在线播放| 91在线免费看片| 亚洲国产二区| 国产精品一级黄片| 色伊人久久综合中文字幕| 精品三级久久久久久久电影聊斋| 日本精品久久久| 国产伦一区二区三区| 亚欧美在线观看| 1000部国产精品成人观看| 国产免费av电影| 欧美激情久久久久| 日韩一级电影| 狠狠操精品视频| 综合亚洲深深色噜噜狠狠网站| 国产乱码久久久| 欧美黄色片视频| 日韩精品丝袜美腿| 992kp快乐看片永久免费网址| 亚洲国产成人私人影院tom| 一区二区日韩在线观看| 欧美多人乱p欧美4p久久| 久久久久97| 91n.com在线观看| 玉足女爽爽91| 日韩a在线看| 国产乱人伦真实精品视频| 欧美1区2区| 国产精品三级在线观看无码| 欧美日韩一二三| gogo高清午夜人体在线| 欧洲精品久久| 国产精品夜夜嗨| 久久久久在线视频| 精品国产依人香蕉在线精品| 丁香5月婷婷久久| 免费看a级黄色片| 亚洲激情图片qvod| 男女视频在线观看| 亚洲精品欧美日韩| 羞羞答答国产精品www一本| 免费成人深夜夜行网站| 亚洲国产精品资源| 日本免费一区二区三区等视频| 青草网在线观看| 欧美国产乱子伦| 人妻91麻豆一区二区三区| 国产精品高清网站| 99精品视频免费| 一区二区国产精品精华液| 日韩久久精品成人| 久久久国产精品入口麻豆|