set -o nounset
1)有一個索引數組,如:
myArray=("red" "black" "blue")
這是檢查是否元素1設置最短的路?
我有時會使用以下方法:
test "${#myArray[@]}" -gt "1" && echo "1 exists" || echo "1 doesn't exist"
我想知道,如果有一個首選之一。
2)如何處理非連續索引?
myArray=()
myArray[12]="red"
myArray[51]="black"
myArray[129]="blue"
如何快速檢查'51'已被設置爲例如?
3)如何處理關聯數組?
declare -A myArray
myArray["key1"]="red"
myArray["key2"]="black"
myArray["key3"]="blue"
如何快速檢查'key2'已被使用爲例?
感謝
EDITED
最簡單的方法似乎對我說:
if test "${myArray['key_or_index']+isset}"
then
echo "yes"
else
echo "no"
fi;
這適用於這兩個索引和關聯數組。使用set -o nounset顯示沒有錯誤。
感謝doubleDown的headup。
我這樣解決了:if test「$ {myArray ['key_or_index'] + isset}」;然後回顯「是」;否則回顯「否」;網絡連接;在我看來,這是最簡單的方法,它適用於索引和關聯數組。謝謝 –
+1!感謝'$ {var + val}'符號!我再次閱讀「bash」,發現我之前跳過了! – TrueY
@doubleDown如果[$ {array [key] + abc}]不存在,你如何在if子句中使用[$ {array [key] + abc}]來做某些事情? – olala