Kabuk betiğinde nasıl karşılaştırılır?Kabuk betiğinde nasıl karşılaştırılır?
Veya aşağıdaki komut neden hiçbir şey yazdırmıyor?
rakamlarlax=1
if[ $x = 1 ] then echo "ok" else echo "no" fi
Kabuk betiğinde nasıl karşılaştırılır?Kabuk betiğinde nasıl karşılaştırılır?
Veya aşağıdaki komut neden hiçbir şey yazdırmıyor?
rakamlarlax=1
if[ $x = 1 ] then echo "ok" else echo "no" fi
,
x=1
if [ $x -eq 1 ]
then
echo "ok"
else
echo "no"
fi
Ve diğerleri için
değil=
==
kullanmak
-eq
,
-ne
... eşittir, eşit değildir için, ... kullanın.
-eq ve ile; sonra] bash: beklenmedik belirtecin yanında sözdizimi hatası verir \ 'o zaman ' –
Sadece benim' == 'to' -eq' için changin ile hala burada hiçbir şey basmaz .. –
Evet, aslında bir "boşluk izin vermelisin" "önce ve sonra" ["... Sadece geçerli bir kod düzenledim. –
Bu dile bağlıdır. Bash ile ==
operatörünü kullanabilirsiniz. Diğer yöntemle, -eq
-lt
-gt
'u eşittir, lowerthan, greaterthan için kullanabilirsiniz.
$ x=1
$ if [ "$x" == "2" ]; then echo "yes"; else echo "no"; fi
no
Düzenleme: eklenen alanlarda ==
civarı ve 2.
"==" etrafında boşluklara ihtiyacınız var - komutunuzu "[" $ x "==" 2 "]' ile deneyin ve bunun doğru olduğunu da göreceksiniz. "[" $ X "=" 1 "]' veya '[$ x -eq 1]' veya bash '[[$ x == 1]]' veya '((x == 1))' ile –
Bu düzeltme, manuel girinti sorunu için teşekkürler. Ama [] çalışıyor. – Aif
Kısa kısayol çözümü AND ve OR ile test:
x=1
(($x == 1)) && echo "ok" || echo "no"
ilk satırı: ** $ x = 1 ** – Hossein
İhtiyacınız a; sonra] ve 'dan bir boşluk varsa [$ x = 1]; sonra echo "tamam"; başka yankı "hayır"; fi ' – Sergio
@Sergio' bash: beklenmedik belirtecin yanında 'sözdizimi hatası verir' '' –