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

首頁 > 產品 > 電腦 > 正文

unix shell學習之getopts解析命令行參數

2020-04-10 20:22:49
字體:
來源:轉載
供稿:網友

作者:liyongchao89

unix shell學習之getopts解析命令行參數
 
 
 
getopts命令內置于shell中,可以獲取由單個字符所指定的有效命令行參數,單個字符有一個‘ - ’號或‘ + ’號。
 
簡單的說,比如運行命令:
 
iptables -t nat -A POSTROUTING -p tcp -o eth0 -s 192.168.2.0/24 -j SNAT --to public_ip
 
它實現了內網ip轉換成公網ip訪問外網的功能,但是這么多的參數怎么解析的呢,getopts就是實現像這種參數的解析。
 
所以getopts是一個非常實用的工具,在你編寫腳本時,能夠很方便的幫助你解析命令行參數,但是它具體是怎么解析的呢,
 
如腳本提供命令行參數: -s 5 -m 10 -d 2 -p my_shell 
 
解析時使用 getopts :s:m:h:d:p 
 
這表明對于指定的項 s、m、d、p等如果在每個開關前加入“:”表示 這個開關項需要一個參數。
 
具體見代碼my_shell.sh 它實現了參數:天 時 分 秒 等全部轉換成秒的功能如下:
 
點擊(此處)折疊或打開
 
SECS=0
 
MINUTES=0
 
HOURS=0
 
DAYS=0
 
PROCESS=0
 
while getopts :s:m:h:d:p TIMED 2>/dev/null
 
do
 
        case $TIMED in
 
        s) SECS=$OPTARG
 
           ;;
 
        m) ((MINUTES=$OPTARG*60))
 
           ;;
 
        h) ((HOURS=$OPTARG*3600))
 
           ;;
 
        d) ((DAYS=$OPTARG*86400))
 
           ;;
 
        p) PROCESS=$OPTARG
 
           ;;
 
        ?) usage
 
           exit;
 
          ;;
 
        esac
 
done
 
((TOTALSECS=$SECS+$MINUTES+$HOURS+$DAYS))
 
echo "total seconds:$TOTALSECS"
 
 
 
此時 運行命令:bash my_shell.sh -s 20 -m 3 -h 5 -d 8 -p my_shell
 
就可以看到運行命令后解析參數所得到的結果

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丰宁| 敖汉旗| 武宁县| 东方市| 库伦旗| 文化| 巴南区| 察哈| 景泰县| 巴塘县| 蒙城县| 肃北| 澎湖县| 化德县| 洪雅县| 克拉玛依市| 油尖旺区| 凯里市| 乾安县| 嘉禾县| 无为县| 泊头市| 德庆县| 宁强县| 武冈市| 宝应县| 铜鼓县| 奉新县| 上思县| 宜良县| 于田县| 台中市| 黄陵县| 特克斯县| 崇州市| 吉林省| 湘阴县| 孟连| 肇东市| 江山市| 通州区|