Saya mencoba menggunakan ini:
$ if [$a == 1] then { echo 'yes'; } fi;
tapi saya mendapatkan kesalahan:
-bash: syntax error near unexpected token `}'
Apa format yang benar? Saya mencoba beberapa tetapi tidak berhasil.
Jawaban yang Diterima:
[ hanyalah karakter lain, menurut bash; itu tidak membatasi diri. Jadi, Anda perlu memberi spasi di sekitar [ dan ] . Meskipun Anda akan lebih baik menggunakan [[] dan ]] .
Dan perintah berikut if (ya, [ adalah perintah) harus diakhiri dengan ; atau baris baru.
Terakhir, == (yang bukan posix, FWIW; posix lebih memilih = ) adalah persamaan string, bukan persamaan numerik.
Jadi maksud Anda mungkin:
if [[ $a -eq 1 ]]; then echo yes; fi
Tapi Anda bisa menggunakan evaluasi aritmatika sebagai gantinya:
if ((a == 1)); then echo yes; fi
(Dalam evaluasi aritmatika, persamaan adalah == , dan Anda tidak perlu $ sebelum nama variabel. Saya tahu ini membingungkan.)
Untuk informasi lebih lanjut tentang [ :help test . Tentang [[ :bantuan [[ (yang dibangun di atas test ). Tentang (( :help let . Tentang bash :man bash