在Shell腳本中處理命令行選項和參數通常使用getopts
命令來實現,以下是一個簡單的例子:
while getopts ":a:b:" opt; do
case $opt in
a)
echo "Option a has value $OPTARG"
;;
b)
echo "Option b has value $OPTARG"
;;
\?)
echo "Invalid option: -$OPTARG"
;;
:)
echo "Option -$OPTARG requires an argument."
;;
esac
done
shift $((OPTIND - 1))
echo "Remaining arguments: $@"
在這個例子中,getopts
命令用來解析命令行選項,:
后面跟著的字符表示需要參數的選項,opt
保存當前解析到的選項,OPTARG
保存選項的參數。case
語句用來根據不同的選項做不同的處理。
使用shift $((OPTIND - 1))
命令來移除已經解析過的選項,剩下的參數可以通過$@
來獲取。