GNU/Linux >> Belajar Linux >  >> Linux

Bash:Kesalahan Sintaks Dekat Token Tak Terduga `}'?

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


Linux
  1. Penanganan kesalahan dalam skrip Bash

  2. Kesalahan:Propagasi DNS memeriksa Token Mismatch [Terpecahkan]

  3. Typeset -a Apakah Memberikan Kesalahan Dalam Script?

  1. Beberapa Operator Logika, ((a || B) &&C), Dan “Kesalahan sintaksis Dekat Token Tak Terduga”?

  2. Kesalahan Skrip Bash:Ekspresi Integer Diharapkan?

  3. “Kesalahan Sintaks Dekat Token Tak Terduga” Setelah Mengedit .bashrc?

  1. Pelajari penanganan kesalahan Bash dengan contoh

  2. Kesalahan tar:EOF tak terduga dalam arsip

  3. kesalahan sintaksis di dekat token tak terduga ' - bash