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