#parse options
while getopts ":d:b:n:" opt; do
case $opt in
d)
DIRS =("$OPTARG")
echo $DIRS
;;
b)
PATHBACKUP=$OPTARG
echo $PATHBACKUP
;;
n)
FNAME=$OPTARG
echo $FNAME
;;
:)
echo "Option -$OPTARG requires an argument." >&2
error
exit 1
;;
esac
done
shift $(( OPTIND - 1 ))
這是我的代碼我試圖將 -d 之后的每個引數存盤到 $DIRS 但是,當我回顯 $DIRS 時,我只得到第一個引數
例子:
/.script -d /dev /home/work -b /backup
echo $DIRS
echo $PATHBACKUP
> /dev
> /backup
uj5u.com熱心網友回復:
使用多個-ds
./script -d /dev -d /home/work -b /backup
否則,第一個非選項(即/home/work)將停止getopts選項處理并且-b不會被考慮。
另一種選擇是使用一些分隔符,并自己決議
./script -d /dev,/home/work -b /backup
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/527508.html
標籤:linux重击壳脚本
上一篇:將用戶輸入字串轉換為MenuItem.Shortcut
下一篇:Shell腳本中的For回圈
