Betulkan: Ralat Sintaks berhampiran token yang tidak dijangka `(& lsquo;

Kesalahan sintaks mesej ralat berhampiran token yang tidak dijangka "(' berlaku di persekitaran jenis Unix, Cygwin, dan di antara muka baris perintah di Windows. Kesalahan ini kemungkinan besar akan dicetuskan ketika anda cuba menjalankan skrip shell yang diedit atau dibuat dalam sistem DOS / Windows atau Mac yang lebih lama.

Ralat Sintaks berhampiran token yang tidak dijangka "('

Mesej ralat ini juga muncul ketika anda memasukkan perintah di baris perintah Linux untuk tugas sehari-hari seperti menyalin fail secara manual dan lain-lain. Sebab utama mengapa mesej ralat ini berlaku adalah kerana sintaks yang buruk atau masalah OS dalam menafsirkan perintah sistem lain / tempurung.

Apa yang menyebabkan Ralat Sintaks dekat token yang tidak dijangka "('?

Sebab-sebab mesej ralat ini sangat berbeza dan tidak dapat disenaraikan dalam satu artikel kerana terdapat ribuan kemungkinan sintaks menjadi salah ketika menjalankan perintah. Sebab utama ralat ini adalah:

  • Sintaks yang tidak betul semasa menjalankan sebarang perintah di kedua-dua platform. Anda tidak menggunakan arahan dengan betul atau memasukkan sintaks yang salah.
  • Shell tidak sesuai antara sistem Unix / DOS.
  • Terdapat masalah menjalankan skrip bash shell dari sumber lain .

Dalam artikel ini, kami menganggap bahawa anda mengetahui asas pengkodan dan mempunyai idea tentang apa yang anda lakukan. Sekiranya anda seorang pemula, lebih baik anda mengikuti tutorial bahasa / arahan yang anda ingin laksanakan secara mendalam. Anda mungkin telah membuat kesalahan dengan beberapa sintaks.

Penyelesaian 1: Memeriksa Sintaks dan Format arahan

Sebab pertama dan paling utama mengapa anda mengalami mesej ralat ini adalah sintaks yang tidak baik dalam kod anda atau anda tidak mengikuti format perintah yang tepat. Setiap arahan mempunyai format yang telah ditentukan yang dapat anda lihat dalam dokumentasinya. Beberapa parameter adalah pilihan yang mana yang lain adalah wajib.

Selanjutnya, penjagaan tambahan harus diambil untuk ruang tambahan , penggunaan tanda petik ganda , dan parameter wajib yang diperlukan. Sekiranya ada yang hilang atau dinyatakan tidak betul, anda tidak akan dapat melaksanakan kod anda.

Contohnya, bukannya kod berikut

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

Anda perlu melaksanakannya sebagai

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

Juga, pastikan bahawa anda menjalankan perintah / skrip shell anda dengan betul jika mencakup beberapa baris.

Oleh kerana jenis parameter, tanda kutip ganda diperlukan. Ruang tambahan mungkin juga merosakkan kod anda dan memaksa mesej kesalahan Pastikan anda memeriksa dokumentasi rasmi arahan yang anda jalankan dan lihat apakah ada masalah di sana.

Penyelesaian 2: Menyelesaikan masalah skrip shell anda

Sekiranya menggunakan skrip shell yang berfungsi di sistem sumber tetapi mengembalikan kesalahan pada sasaran, anda dapat menyelesaikan masalah skrip dengan memeriksa pemboleh ubah yang disimpan selama pelaksanaan dan kemudian melihat apa yang menyebabkan masalah ini. Ini adalah sebab yang sangat biasa kerana dalam beberapa kes, cangkang itu cuba menafsirkan watak yang tidak dapat dicetak.

Cuba 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 menyelesaikan masalah dan mendiagnosis apa yang salah.

Contohnya, jalankan skrip di terminal setelah memasukkan 'vx' seperti:

# sh -vx ./test_script5.sh

Anda boleh memeriksa kandungan skrip menggunakan perintah 'cat' sebagai:

# cat test_script5.sh

Penyelesaian 3: Menggunakan arahan 'dos2unix.exe'

Dalam fail teks Windows / DOS, baris baru adalah gabungan Carriage Return (\ r) diikuti dengan Line Feed (\ n). Di Mac (sebelum Mac OS X), jeda talian menggunakan Carriage Return (\ r) sederhana. Unix / Linux dan Mac OS X menggunakan pemutus baris Line Feed (\ n). Sekiranya anda menggunakan Cygwin, ia akan gagal memproses skrip yang dibuat oleh DOS / Windows dan Mac yang lebih lama kerana watak Carriage Return (\ r) tambahan.

Menggunakan arahan 'dos2unix.exe'

Di sini anda boleh membuat perintah 'dos2unix.exe' yang akan menukar skrip ke format yang betul dan kemudian anda boleh melaksanakannya tanpa masalah.

Sebagai kesimpulan, anda perlu meneliti perintah dan jenis platform yang anda gunakan dan pastikan tidak ada percanggahan. Oleh kerana kami tidak dapat menutupi setiap kemungkinan, anda pasti akan mengetahui jenis kesalahan apa yang dapat terjadi dan bagaimana memperbaikinya.