Fix: Syntax Error dekat token tak terduga `(& lsquo;

Kesalahan sintaks pesan kesalahan dekat token yang tidak diharapkan `(' terjadi di lingkungan tipe Unix, Cygwin, dan di antarmuka baris perintah di Windows. Kesalahan ini kemungkinan besar akan dipicu ketika Anda mencoba menjalankan skrip shell yang telah diedit atau dibuat dalam sistem DOS / Windows atau Mac yang lebih lama.

Galat Sintaksis dekat token tak terduga `('

Pesan kesalahan ini juga muncul saat Anda memasukkan perintah di baris perintah Linux untuk tugas sehari-hari seperti menyalin file secara manual dll. Alasan utama mengapa pesan kesalahan ini terjadi adalah karena sintaks yang buruk atau masalah OS dalam menafsirkan perintah sistem lain / kulit.

Apa yang menyebabkan Syntax Error dekat token tak terduga `('?

Alasan pesan kesalahan ini sangat beragam dan tidak dapat dicantumkan dalam satu artikel karena ada ribuan kemungkinan sintaks yang salah saat menjalankan perintah. Alasan utama kesalahan ini adalah:

  • Sintaks yang buruk saat menjalankan perintah apa pun di salah satu platform. Mungkin Anda tidak menggunakan perintah dengan benar atau telah memasukkan sintaks yang salah.
  • Shell tidak kompatibel antara sistem Unix / DOS.
  • Ada masalah saat menjalankan skrip bash shell dari sumber lain .

Pada artikel ini, kami berasumsi bahwa Anda mengetahui dasar-dasar pengkodean dan mengetahui apa yang Anda lakukan. Jika Anda seorang pemula, sebaiknya Anda mengikuti tutorial mendalam tentang bahasa / perintah yang coba Anda jalankan. Anda mungkin telah membuat kesalahan pada beberapa sintaksis.

Solusi 1: Memeriksa Sintaks dan Format perintah

Alasan pertama dan terpenting mengapa Anda mungkin mengalami pesan kesalahan ini adalah karena sintaks yang buruk dalam kode Anda atau Anda tidak mengikuti format perintah yang tepat. Setiap perintah memiliki format yang telah ditentukan yang dapat Anda lihat di dokumentasinya. Beberapa parameter bersifat opsional sedangkan yang lainnya wajib.

Selain itu, perhatian ekstra harus diberikan untuk ruang ekstra , penggunaan tanda kutip ganda , dan parameter wajib yang diperlukan. Jika salah satu dari mereka hilang atau telah dinyatakan dengan tidak benar, Anda tidak akan dapat mengeksekusi kode Anda.

Misalnya, alih-alih kode berikut

[mycom7] # ./ctopo.sh um_test1 [(1,2), (2,1)]

Anda perlu menjalankannya sebagai

[mycom7] # ./ctopo.sh um_test1 "[(1,2), (2,1)]"

Selain itu, pastikan Anda menjalankan perintah / skrip shell dengan benar jika mencakup beberapa baris.

Karena jenis parameternya, tanda kutip ganda diperlukan. Ruang tambahan juga dapat merusak kode Anda dan memaksa pesan kesalahan. Pastikan Anda memeriksa dokumentasi resmi dari perintah yang Anda jalankan dan lihat apakah ada masalah di sana.

Solusi 2: Memecahkan masalah skrip shell Anda

Jika menggunakan skrip shell yang berfungsi di sistem sumber tetapi mengembalikan kesalahan pada target, Anda dapat memecahkan masalah skrip dengan memeriksa variabel yang disimpan selama eksekusi dan kemudian melihat apa yang menyebabkan masalah. Ini adalah penyebab yang sangat umum karena dalam beberapa kasus, shell mencoba menafsirkan karakter yang tidak dapat dicetak.

Coba jalankan shell dengan parameter 'vx'. Ini akan menunjukkan kepada kita perintah apa yang sedang dijalankan dan nilai apa yang disimpan dalam skrip. Melalui sini Anda dapat memecahkan masalah dan mendiagnosis apa yang salah.

Misalnya, jalankan skrip di terminal setelah memasukkan 'vx' sebagai:

# sh -vx ./test_script5.sh

Anda dapat memeriksa konten skrip menggunakan perintah 'cat' sebagai:

# cat test_script5.sh

Solusi 3: Menggunakan perintah 'dos2unix.exe'

Dalam file teks Windows / DOS, baris baru adalah kombinasi dari Carriage Return (\ r) diikuti oleh Line Feed (\ n). Di Mac (sebelum Mac OS X), jeda baris menggunakan Carriage Return sederhana (\ r). Unix / Linux dan Mac OS X menggunakan baris baris Feed (\ n). Jika Anda menggunakan Cygwin, itu akan gagal untuk memproses skrip yang dibuat oleh DOS / Windows dan Mac yang lebih lama karena karakter ekstra Carriage Return (\ r).

Menggunakan perintah 'dos2unix.exe'

Di sini Anda dapat membuat perintah 'dos2unix.exe' yang akan mengubah skrip ke format yang benar dan kemudian Anda dapat menjalankannya tanpa masalah.

Untuk menyimpulkan, Anda perlu meneliti perintah dan jenis platform yang Anda gunakan dan memastikan tidak ada perbedaan. Karena kami tidak dapat mencakup setiap kemungkinan, Anda akan tahu jenis kesalahan apa yang dapat terjadi dan bagaimana cara memperbaikinya.