国产探花免费观看_亚洲丰满少妇自慰呻吟_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
 
就可以看到運行命令后解析參數所得到的結果

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大埔县| 延吉市| 蒙自县| 南溪县| 赫章县| 通辽市| 留坝县| 广水市| 马公市| 历史| 东丽区| 西昌市| 江安县| 喀喇沁旗| 东海县| 包头市| 法库县| 屯门区| 收藏| 岳普湖县| 柘城县| 崇阳县| 长丰县| 大英县| 安溪县| 三台县| 新宾| 许昌市| 平昌县| 民和| 利辛县| 宾川县| 三亚市| 汪清县| 苍溪县| 西乌| 霍邱县| 定边县| 宁津县| 灵武市| 沭阳县|