Düzeltme: Beklenmeyen belirteç yakınında Sözdizimi Hatası '('



Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin

Hata mesajı beklenmedik belirteç yakınında sözdizimi hatası `(' Unix tipi bir ortamda, Cygwin'de ve Windows'ta komut satırı arayüzünde oluşur. Bu hata, büyük olasılıkla, eski DOS / Windows veya Mac sistemlerinde düzenlenen veya oluşturulan bir kabuk komut dosyasını çalıştırmaya çalıştığınızda tetiklenecektir.



Beklenmeyen belirteç yakınında Sözdizimi Hatası `(

Beklenmeyen belirteç yakınında Sözdizimi Hatası `('



Bu hata mesajı, dosyaları manuel olarak kopyalamak gibi günlük görevler için Linux komut satırına komutlar girdiğinizde de ortaya çıkar. Bu hata mesajının oluşmasının ana nedenleri, kötü sözdizimi veya işletim sisteminin başka bir sistemin komutlarını yorumlamadaki problemidir kabuk.



Beklenmeyen belirteç ('?

Bu hata mesajının nedenleri çok çeşitlidir ve komutları çalıştırırken yanlış giden binlerce sözdizimi olasılığı olduğundan tek bir makalede listelenemez. Bu hatanın temel nedenleri şunlardır:

  • Hatalı sözdizimi her iki platformda da herhangi bir komutu çalıştırırken. Ya komutu doğru kullanmıyorsunuz ya da yanlış sözdizimi girdiniz.
  • Kabuk değil uyumlu Unix / DOS sistemleri arasında.
  • Bash kabuğu komut dosyasını şuradan çalıştırırken sorunlar var: başka bir kaynak .

Bu makalede, kodlamanın temellerini bildiğinizi ve ne yaptığınız hakkında bir fikriniz olduğunu varsayıyoruz. Yeni başlayan biriyseniz, yürütmeye çalıştığınız dilin / komutun ayrıntılı eğitimlerini takip etmeniz en iyisidir. Muhtemelen bir söz dizimi hatası yapmışsınızdır.

1.Çözüm: Komutların Sözdizimini ve Biçimini Kontrol Etme

Bu hata mesajıyla karşılaşmanızın ilk ve en önemli nedeni, kodunuzdaki kötü sözdizimi veya komutların tam biçimini izlememenizdir. Her komutun belgelerinde görebileceğiniz önceden tanımlanmış bir biçimi vardır. Diğerleri zorunlu olan birkaç parametre isteğe bağlıdır.



Ayrıca, ekstra özen gösterilmelidir. fazladan boşluk , kullanımı ikili alıntı , ve zorunlu gerekli parametreler. Bunlardan herhangi biri eksikse veya yanlış beyan edilmişse, kodunuzu çalıştıramazsınız.

Örneğin, aşağıdaki kod yerine

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

Olarak yürütmeniz gerekiyor

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

Ayrıca, birkaç satıra yayılıyorsa komutlarınızı / kabuk betiğinizi doğru şekilde çalıştırdığınızdan emin olun.

Parametre türü nedeniyle, çift tırnaklar gereklidir. Fazladan bir boşluk da kodunuzu bozabilir ve hata mesajını zorlayabilir. Kontrol ettiğinizden emin olun. resmi belgeler Çalıştırmakta olduğunuz komutun bir kısmına bakın ve orada bir sorun olup olmadığına bakın.

2.Çözüm: Kabuk betiğinizde sorun giderme

Kaynak sistemde çalışan ancak hedefte bir hata veren bir kabuk komut dosyası kullanıyorsanız, yürütme sırasında depolanan değişkenleri kontrol ederek komut dosyasını giderebilir ve ardından soruna neyin neden olduğunu görebilirsiniz. Kabuk birçok durumda yazdırılamayan bir karakteri yorumlamaya çalıştığı için bu çok yaygın bir nedendir.

Kabuğu 'vx' parametresiyle çalıştırmayı deneyin. Bu bize hangi komutların çalıştırıldığını ve kodda hangi değerlerin saklandığını gösterecektir. Burada neyin yanlış gittiğini giderebilir ve teşhis edebilirsiniz.

Örneğin, komut dosyasını şu şekilde 'vx' ekledikten sonra terminalde çalıştırın:

# sh -vx ./test_script5.sh

Komut dosyasının içeriğini şu şekilde 'cat' komutunu kullanarak kontrol edebilirsiniz:

# cat test_script5.sh

3. Çözüm: 'dos2unix.exe' komutunu kullanma

Windows / DOS metin dosyalarında yeni bir satır, Carriage Return ( r) ve ardından Line Feed ( n) kombinasyonudur. Mac'te (Mac OS X'ten önce), satır sonu basit bir Satır Başı ( r) kullanıyordu. Unix / Linux ve Mac OS X, Satır Besleme ( n) satır sonlarını kullanır. Cygwin kullanıyorsanız, fazladan Satır Başı ( r) karakteri nedeniyle DOS / Windows ve daha eski Mac tarafından yapılan komut dosyalarını işleyemez.

Kullanma

'Dos2unix.exe' komutunu kullanma

Burada, betiği doğru biçime dönüştürecek 'dos2unix.exe' komutunu yapabilir ve ardından herhangi bir sorun olmadan çalıştırabilirsiniz.

Sonuç olarak, komutlarınızı ve kullandığınız platform türünü araştırmanız ve herhangi bir tutarsızlık olmadığından emin olmanız gerekir. Her olasılığı ele alamayacağımız için, ne tür hataların meydana gelebileceği ve bunları nasıl düzelteceğiniz konusunda bir fikriniz olur.

3 dakika okundu