1、getopts可以編寫指令碼,使控制多個命令列引數更加容易
如:檔案get.sh #! /bin/sh
name=false
age=false
odd=false
***=false
while getopts :nao:s: arg
do case $arg in
n)
echo 'name is true';;
a)
echo 'age is true';;
o)
echo 'odd is' $optarg;;
s)
echo '*** is'$optarg;;
*)
echo 'default';;
esac
done
通過getopts來設定 n,a,o,s四個選項,這樣 sh get.sh -n 直接就輸出 name is true
因此,getopts是提供命令引數的作用,如果要為引數後面傳遞值,則在引數後面新增 「:」 ,如 na:os:
這樣在你選擇引數的時候,系統會要求你提供 value值,否則會有警告 : get.sh: option requires an argument -- o 卻是引數
其實,如果不想提示這條警告或者像使用自己的提示,則在naos前新增「:」即可
在有value值是,我們應該用$optarg來獲取我們輸入的值
並且在我們設定選項時,我們盡量使用用系統一樣的選項
這樣才能保證符合大家的正常使用習慣
shell的一些筆記
如何使用基於ssh的scp遠端複製檔案?如何利用python傳?scp home amazing felix.tar.gz root 遠端ip home dsp python傳 pytyon m httpserver 8085 wget 如何檢視本機外網ip?curl ident.me 返回ip和地...
一些shell符號
傳遞到指令碼的引數個數 以乙個單字串顯示所有向指令碼傳遞的引數,與位置變數不同,此選項引數可超過9個 指令碼執行的當前程序id號 後台執行的最後乙個程序的程序id號 與 相同,但是使用時加引號,並在引號中返回每個引數 顯示shell使用的當前選項,與set命令功能相同 顯示最後命令的退出狀態。0表示...
一些shell技巧
1.批量刪除某些指定檔案 我們都知道用find,很快就可以給出 find name your pattern exec rm f 恩,不過還有更快更簡潔的方法,用find自帶的delete find name your pattern delete 2.列出當前目錄下的所有目錄 不遞迴 你能想到幾種...