書-Linux命令行與shell腳本編程大全(第3版)
▲getopt-指令
▽getopts-指令
▲選項標準化
▽shell-輸入
▲shell-輸入超時
▽shell-隱藏輸入
▲shell-用read讀取文件
getopt-指令
處理命令行與參數的工具,就是在設定輸入指令的格式。
ab:cd :定義的選項,沒有定義不能用,':'號就代表有帶參數的選項。
輸出時會把-cd分開,後面加上破折號代表後面的都是參數。
沒有定義e所以錯誤。
在前面加上 -q 可以忽略錯誤。
接下來放進shell裡,使用set加上雙破折號,這個意思就是會把輸入的選項參數傳給getopt。
不過有一個缺點就是getopt不太能用在有空格和引號的地方,還有一個可以用就是getopts。
getopts-指令
跟getopt差不多,選項要有參數加上冒號,錯誤不要顯示在optstring前加上冒號,唯一不同的就是getopts可以用在while,每次只讀取一個參數,全部讀完會返回一個大於0的狀態碼。
OPTARG是getopts內建的參數,因為是用迭代的關係,所以不用跳出迴圈,跑完之後就會自動離開,到了下面會把前面的參數都shift掉。
選項標準化
大部分字母選項都有自己默認意思,如果可以沿用就可以讓程式更友善。
shell-輸入
就像python的input。
這是最基本的用法,-n就代表不換行。
也可以直接在read加上-p。
如果read沒有設定參數可以用$REPLY會保存輸入的值。
shell-輸入超時
就是在一定的時間內沒有輸入就跳出。
-t 5 就是5秒內沒有輸入回傳非0的狀態碼。
也可以用參數'-n'只要輸入n個數字就會自動跳出,後面的數字是要輸入的數字量(n1、n2...)。
shell-隱藏輸入
參數-s,就像輸入密碼不會顯示一樣。
shell-用read讀取文件