10 EYLÜL 2010, Cuma
Eğer bir dizi değeri içeriyorsa, kontrol
Bash, eğer bir dizi belirli bir değeri içeriyorsa test etmek için en kolay yolu nedir?
EDİTbazı testlerden sonra cevapları ve açıklamaları yardımıyla, bu nasıl geldim:
function contains() {
local n=$#
local value=${!n}
for ((i=1;i < $#;i )) {
if [ "${!i}" == "${value}" ]; then
echo "y"
return 0
fi
}
echo "n"
return 1
}
A=("one" "two" "three four")
if [ $(contains "${A[@]}" "one") == "y" ]; then
echo "contains one"
fi
if [ $(contains "${A[@]}" "three") == "y" ]; then
echo "contains three"
fi
Eğer en iyi çözüm olup olmadığından emin değilim, ama iş gibi görünüyor.
CEVAP
20 Aralık 2011, Salı
Aşağıda bunu başarmak için küçük bir fonksiyon. Arama dizesi ilk bağımsız değişken ve geri kalan dizi elemanları
containsElement () {
local e
for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
return 1
}
Bu fonksiyon bir test gibi görünebilir:
$ array=("something to search for" "a string" "test2000")
$ containsElement "a string" "${array[@]}"
$ echo $?
0
$ containsElement "blaha" "${array[@]}"
$ echo $?
1
Bunu Paylaş:
Eğer string bir dizi değeri içeriyorsa...
Eğer dize belirli kelimeler içeriyorsa...
Bir değeri olmadığını kontrol Yakut bi...
Python: eğer bir nesne ya da bir dizi ...
Nasıl (javascript) dizi değeri boş vey...