komut dosyanızda birkaç yazım hataları vardır
olduğu gibi bunu çalıştırdığınızda, ben olsun BASH aşağıdaki hata iletileri:
1. animals: [horse]: must use subscript when assigning associative array
2. [: missing `]'
birincisi diyor sen horse
kullanmak istiyorsanız Bir ilişkisel dizi için bir indeks olarak, ona bir değer atamanız gerekir. Boş bir değer (boş) tamam.
-animals+=([horse])
+animals+=([horse]=)
İkinci mesaj
, köşeli ayraç değerin bir kısmını kabul edilir Son olarak boşluk
-if [ -z "$animals[horse]"]; then
+if [ -z "$animals[horse]" ]; then
ayrılmış değil eğer, test etmek istediğiniz değeri ve braket ayırmak gerektiğini söylüyor ilişkilendirilmiş bir dizideki bir öğe, kendisine atanan bir değer olduğunda (bu değer boş olsa bile) bulunur. Bir dizi değer zaten answered on this site olmuştur ayarlanırsa test sorusu, biz çözüm burada convinience için
-if [ -z "$animals[horse]"]; then
+if [ -n "${animals[horse]+1}" ]; then
ödünç alabilir komple script:
declare -A animals=()
animals+=([horse]=)
if [ -n "${animals[horse] + 1}" ]; then
echo "horse exists";
fi
Maalesef ... ne anlama geliyor '=' çizgi "hayvanlar + = ([at] =)" sonunda – sensorario
endeksi 'horse' boş bir değer atama olduğunu That. hayvanlar + = ([at]) aksi takdirde sözdizimi hatası verecektir. – anubhava