1
我自己對無法找到這樣看似微不足道的事情表示歉意。從shell腳本命令行讀取布爾參數的「無約束變量」
我需要通過多於一個的布爾參數到外殼腳本(擊)如下:
./script --parameter1 --parameter2
等。
如果設置,所有都被認爲是true
。
在腳本的開頭,我用set -u
。
與價值傳遞我目前做的正常參數如下:
# this script accepts the following arguments:
# 1. mode
# 2. window
while [[ $# > 1 ]]
do
cmdline_argument="$1"
case $cmdline_argument in
-m|--mode)
mode="$2"
shift
;;
-w|--window)
window="$2"
shift
;;
esac
shift
done
我想補充像
-r|--repeat)
repeat=true
shift
;;
我不明白爲什麼它無法正常工作預期。
它有錯誤立即退出:
./empire: line 450: repeat: unbound variable
當行450:
if [ "$repeat" == true ];
你能澄清它是如何失敗嗎?是因爲你錯過了一個「轉變」嗎? –
@GordonDavisson我試過了,沒有「shift」。 – Vlastimil
你正在使用'set -u',對嗎? –