Beklenmeyen Belirteç Yakınında Bash Sözdizimi Hatasını Düzeltin
Yayınlanan: 2022-05-30Linux Bash Terminalinde kodlama, kodlama sektöründe baskın bir uygulama haline geldi. Yazılım Mühendisleri ve kodlama dilini öğrenen öğrenciler çeşitli hatalarla karşılaşmaktadır. Beklenmeyen belirteç '(' yakınında Sözdizimi hatası veya beklenmedik belirteç yakınında Bash sözdizimi hatası gibi hataları tekrar tekrar gördüyseniz, makalede açıklanan yöntemlere güvenmeyi deneyebilir ve yetkin bir kodlayıcı olabilirsiniz. açıklanan sipariş ve dosyanızdaki komut satırlarındaki hataları düzeltin.
İçindekiler
- Beklenmeyen Simgenin Yanında Bash Sözdizimi Hatası Nasıl Onarılır
- Yöntem 1: Her Komut Satırındaki Hataları El İle Düzeltme
- Adım I: Dosyanın İçeriğini Okuyun
- Adım II: Windows Satır sonlarını kaldırın
- Adım III: İzinleri Yeni Oluşturulan Dosyaya Ayarlayın
- Adım IV: Dosyadaki Kodu Biçimlendirin
- Yöntem 2: Kodu Yeniden Yaz
- Yöntem 3: Dos2unix.exe Komutunu Kullanın
Beklenmeyen Simgenin Yanında Bash Sözdizimi Hatası Nasıl Onarılır
Linux Bash, Linux tabanlı sistem için bir komut satırı yorumlayıcısıdır ve Bourne Shell veya sh'nin yerini almıştır. Dosyalar, Linux Bash komut dosyasında .sh biçimi kullanılarak adlandırılır. Kabuk betiğindeki kodda biçimlendirme sorunları varsa, bir sözdizimi hatasıyla karşılaşabilirsiniz. Eğer hata ( karakterine yakınsa, kabuk sizi satırda hatayı soracak ve ilgili satırda hatayı gösterecektir. Linux Bash bir yorumlayıcı olduğundan, hatanın olduğu satır size geri dönecektir. Terminal ve komut dosyasındaki diğer komutları taramayı durduracaktır.Bu nedenle, belirli komut satırındaki hatayı düzeltmeniz ve kabuk komut dosyasındaki beklenmeyen belirteç hatasını düzeltmek için bir sonrakine geçmeniz gerekir.Sözdiziminin nedenleri Linux Bash'de beklenmeyen belirteç yakınında hata bu bölümde aşağıdaki gibi listelenmiştir:
- Kaçış dizileriyle kodlama - Kodları Bash komut dosyasıyla yazdıysanız, komut dosyasındaki kaçış dizileri veya tırnak işaretleri hatalara neden olabilir. Hatayı düzeltmek için kaçış dizileri ve tırnak işaretleri doğru biçimde yazılmalıdır.
- Kodlama dosyasında yanlış sözdizimi - Komut, döngü sırasını değiştirmek gibi yanlış sözdiziminde yazılmışsa, koddaki sözdizimi sözdizimi hatası verebilir.
- Komutun yanlış kullanımı- Yanlış değer ataması gibi komutu doğru kullanmıyorsanız, sözdizimi hatası yaşayabilirsiniz.
- Sistemlerde uyumsuz işletim sistemi - Kodlama komut dosyasının kabuğu Unix ve DOS sistemleri arasında uyumlu değilse, beklenmeyen bir hatayla karşılaşabilirsiniz.
- Bash kabuk komut dosyasındaki sorunlar - Başka bir sistemden kopyalanan dosyadaki bash kabuk komut dosyasında çalışan sorunlar, beklenmeyen belirteç hatası verebilir.
Açıklama amacıyla aşağıdaki komut satırlarıyla Linux Bash komut dosyasında oluşturulan example.sh adlı bir dosya düşünün. Örnek dosya, sözdizimi hataları olasılığına sahiptir ve kabuk komut dosyasında kullanılabilecek tüm olası komutları içerir.
str= 'Komut dosyasındaki '(örnek dosya)' öğesinin ilk komut satırı' str= [(1,2),(3,4)] if[ $gün == “pzt” ] o zaman yankı "mon" başka yankı "hayır mon" fi {0..2} içindeki DEĞİŞKEN için; sonra yankı komutu1 yap; yankı komutu2; yankı komutu3; yankı komutu4; tamamlamak doğru iken; do if [ $ gün == “pzt” ]; sonra “mon” yankısı yapın; else "mon değil" yankısı; tamamlamak; fi
Yöntem 1: Her Komut Satırındaki Hataları El İle Düzeltme
Hataları düzeltmenin ilk yöntemi, komut dosyasındaki her komut satırında sözdizimi hatasını manuel olarak düzeltmektir. Komut satırlarında beklenmeyen belirteçlere yakın sözdizimi hatalarını çözme adımları bu bölümde tartışılmaktadır. Terminalde beklenmeyen belirteç hatasını düzeltme işlemi aşağıda açıklanmıştır. ./example.sh komutunu yazıp Enter tuşuna basarak dosyayı Terminal'de çalıştırın.
2. Aşağıdaki sonuçtaki komut satırlarında beklenmeyen belirteç hatası olan satırları not edin.
3. Aşağıda açıklanan yöntemleri tek tek takip ederek ve dosyayı kaydederek her satırdaki hatayı düzeltin .
4. Değişikliklerden sonra dosyayı yeniden çalıştırın ve dosyadaki sözdizimi hatasının çözülüp çözülmediğini kontrol edin.
Ayrıca Okuyun: Windows 10'da Linux Bash Shell Nasıl Kurulur
Adım I: Dosyanın İçeriğini Okuyun
Komut satırlarındaki sözdizimi hatasını çözmenin ilk adımı, dosyayı Terminal'de okumaktır. Dosyayla ilgili sorunlar varsa, dosyayı görüntüleyemeyebilirsiniz. Dosyayı görüntülemenin normal uygulaması, dosyayı ./example.sh komutunu kullanarak çalıştırmaktır, ancak dosyadaki içeriği değiştiremezsiniz. Beklenmeyen belirteç '(' yakınındaki Sözdizimi hatasını düzeltmek için dosyanın içeriğini görüntüleme ve komut satırlarını değiştirme seçenekleri aşağıda tartışılmıştır.
Seçenek 1: CAT Komutu ile
İlk seçenek, dosyayı kabuk komut dosyasında görüntülemek için cat komutunu kullanmaktır. Terminal'de cat –v example.sh komutunu yazarak cat komutunu kullanarak beklenmeyen belirteç hatası olan dosyanın içeriğini okuyun.
Not 1: example.sh açıklayıcı amaçlar için kullanılır ve beklenmeyen belirteç hatası olan dosyanın adını yazmanız gerekir.
Not 2: cat –v komutu, satır başı veya kesintisiz boşluğu temsil etmesi muhtemel tüm görünmez karakterleri görüntülemek için kullanılır.
Seçenek 2: VX Komutuyla
cat komutunu kullanamıyorsanız, aşağıda verilen adımı kullanarak dosyadaki komutları görüntülemek ve değiştirmek için vx komutunu kullanmayı deneyebilirsiniz. Dosyayı açmak için Terminal'e sh –vx ./example.sh komutunu yazın.
Seçenek 3: od –a Komutuyla
3. Komut satırlarında birkaç görünmez karakter varsa, dosyayı görüntülemek için od –a komutunu kullanabilirsiniz. Dosyanın içeriği kod dosyasında görünmüyorsa, kodu değiştirmek için od –a example.sh komutunu kullanarak dosyayı okumayı deneyebilirsiniz.
Adım II: Windows Satır sonlarını kaldırın
Kabuk komut dosyasında Windows satır sonları varsa, satır sonlarını kaldırmak ve hatayı düzeltmek için kod satırlarını yeni bir dosyaya kopyalamak için konsol komutlarını kullanabilirsiniz.
Komut dosyasındaki Windows satır sonlarını kaldırmak için dosyadaki içeriği Correctedexample.sh adlı başka bir dosyaya kaydetmek için Terminal'e aşağıdaki komutu girin.
tr –d '\r' <example.sh> düzeltildiexample.sh
Adım III: İzinleri Yeni Oluşturulan Dosyaya Ayarlayın
Dosyanın kabukta çalıştırılabilmesi için dosyayı düzenlemek için yeni oluşturulan dosyaya izin vermeniz gerekir. Dosyaya izinleri sağlamak ve dosyayı çalıştırmak için komutu Terminal'de chmod 755 Correctedexample.sh olarak yazın. Artık düzeltilmiş dosyayı görüntüleyebilir ve biçimlendirme sorunlarını düzeltebilir ve dosyadaki beklenmeyen '(' simgesinin yanındaki Sözdizimi hatasını düzeltebilirsiniz.
Adım IV: Dosyadaki Kodu Biçimlendirin
İkinci adım, kod satırlarını ayrı ayrı biçimlendirmek ve komut satırlarını dosya üzerinde manuel olarak değiştirmektir. Beklenmeyen belirteç '(' yakınındaki Sözdizimi hatasını düzeltmek için dosyayı biçimlendirme seçenekleri, bu bölümde aşağıda tartışılmaktadır.
Seçenek 1: Tek Alıntıları Çift Alıntılarla Değiştirin
Komut satırlarında tek tırnak kullanıyorsanız, sözdizimi hatasını düzeltmek için tek tırnak yerine çift tırnak işareti koyarak komutu değiştirmeniz gerekir. example.sh dosyasında, komuttaki ' ve ' içeren kod satırlarını veya tek tırnak işaretlerini kaldırın ve tek tırnakları çift tırnak veya “ ve '' . Burada, örnek dosyada, kodu str= “Scriptte “\(example file)\” ilk komut satırı” olarak değiştirmeniz gerekiyor.
Not: str= “[(1,2),(3,4)]” gibi parametre tipi komutları için çift tırnak gereklidir.
Ayrıca Okuyun: 2022'nin En İyi 20 Hafif Linux Dağıtımı
Seçenek 2: Dize Satırlarına $ Ekle
Komut dosyasına dize değerleri eklediyseniz, komut dosyasındaki sözdizimi hatasını düzeltmek için dize değerlerine bir $ eklemeniz gerekir. Beklenmeyen hatayı düzeltmek için dize değerleriyle komut satırları için $ ekleyin. Burada, örnek dosyada komut satırını şu şekilde değiştirin;
str= $ 'Komut dosyasındaki '\(örnek dosya)\' öğesinin ilk komut satırı'
Not: Dize değerinde $ kullanıyorsanız, komut satırlarının kodu ANSI C standardı tarafından çözüldüğü için ters eğik çizgi kaçış dizisini atlayabilirsiniz. Diğer bir deyişle, dize değeri için $ kullanarak komut satırlarında tek tırnak yerine çift tırnak kullanmaktan kaçınabilirsiniz.
Seçenek 3: Sekmeleri Boşluklara Dönüştür
Komut dosyasındaki sözdizimi hatasını düzeltmek için komutta iki ifade arasında bıraktığınız boşluklar sekmeler yerine boşluklar olmalıdır. Cygwin'de hata alıyorsanız, hatayı düzeltmek için kodlardaki sekmeleri boşluklara dönüştürmeyi deneyebilirsiniz. Komut satırı aşağıda verilmiştir;
yankı komutu1 yap; yankı komutu2; yankı komutu3; yankı komutu4; tamamlamak
Hatayı düzeltmek için yukarıdaki komut aşağıda gösterildiği gibi yeniden yazılmalıdır.
yankı komutu1 yap; yankı komutu2; yankı komutu3; yankı komutu4; tamamlamak
Seçenek 4: Kaçış Karakterlerini Kullan
Bash karakteri kullanıyorsanız, sözdizimi hatasını düzeltmek için bash karakteriyle birlikte bir kaçış karakteri kullanmak önemlidir. Parantezler veya () dosyadaki özel bash karakterleridir, bu nedenle, komutu yürütmek için normal karakterlerden kaçmak için komut satırında kaçış karakterini veya ters eğik çizgiyi kullanmanız gerekir. str= 'Komut dosyasındaki \'(örnek dosya)\' öğesinin ilk komut satırı' komutu, kaçış karakteri kullanıldığından Terminal'de bir hata vermez.
Ayrıca Okuyun: Linux'ta Aramıza Nasıl Girilir
Seçenek 5: Karakterler arasında boşluk kullanın
Kabuk betiği, betikteki komutları ve deyimleri varsayılan değerlerle tanır. Kabuğun komut dosyasında verilen komutu tanımlayabilmesi için karakterler arasındaki boşluğun uygun şekilde kullanılmasını sağlamanız gerekir. Boşluk, komut satırındaki iki karakteri ayırt etmek için kullanılan bir karakterdir. Kodda, if[ komutu kabuk tarafından tanımlanmadığından, beklenmeyen belirteç hatası veren if ve [ arasında boşluk yoktur. Kod if [ $ gün == “mon” ] olarak değiştirilirse; daha sonra, kabuk tarafından tanımlanırsa, hata kabuk bülten komutu olarak çözülebilir.
Seçenek 6: İfadeler için Komut Ayırıcıyı Kullan
Kabuk betiğindeki çeşitli komutların, Terminal'in ayrı komutları tanımlaması için ifadelere ayrılması gerekir. Linux Bash'deki sözdizimi hatasını düzeltmek için bir komut ayırıcı kullanmanız gerekir. Komuttaki ifadelerin noktalı virgül veya ; veya Enter tuşuna basarak yeni bir satır. Örneğin, if [ $ day == “mon” ] if kodundaki komut, [ $ day == “mon” ]; sonra hatayı düzeltmek için. Noktalı virgül [ ve sonra karakterleri arasında komut ayırıcı olarak kullanıldığından, bu hatayı düzeltebilirsiniz.
Seçenek 7: Ek İfadeleri Kaldırma
Bazen, birden fazla iç içe döngü olması durumunda ek ifadeler eklemiş veya kodları karıştırmış olabilirsiniz. Linux Bash'de beklenmeyen '(' simgesinin yanındaki Sözdizimi hatasını düzeltmek için komut satırlarındaki ek ifadeleri kaldırmanız gerekir. Bash ,…done veya ve yapısal yapıları eğer… fi için döngüler doğru sözdiziminde olması gerekir. örnek dosyanın for döngüsünde yanlış sözdizimi var, if ifadesinde kullanılan o terimi var.Kodu aşağıdaki kod olarak değiştirmek, beklenmeyen belirteç hatasını düzeltecektir.O zaman ifade, kodda ek bir ifadedir ve terimin kaldırılmasıdır. hatayı düzeltecektir.
{0..2} içindeki DEĞİŞKEN için; yankı komutu1 yap; yankı komutu2; yankı komutu3; yankı komutu4; tamamlamak
Seçenek 8: Ekstrelerin Kapanış Sırasının Doğru Olduğundan Emin Olun
Kabuk betiğinde çok sayıda iç içe veya koşullu yapı ifadesi kullanıyorsanız, döngülerin açıldıkları sırada kapalı olduklarından emin olmalısınız. Döngülerle çakışmaları önlemek için yeni bir satır ayırıcı kullanabilirsiniz. İç içe döngülerin ve koşullu ifadelerin kapanma sırası doğru olmalı ve değiştirilmemelidir. Doğru iken koddaki döngüler; do if [ $ gün == “pzt” ]; sonra “mon” yankısı yapın; else "mon değil" yankısı; tamamlamak; fi'nin doğru sırada kapatılması gerekir. Kodu aşağıda gösterildiği gibi değiştirmek, ifadelerin kapanış sırası düzeltildiğinden beklenmeyen belirteç hatasını düzeltebilir.
doğru iken; if [ $ gün == “pzt” ]; sonra “mon” yankısı yapın; else "mon değil" yankısı; fi; tamamlamak
Ayrıca Okuyun: Komut Satırı Yorumlayıcısı Nedir?
Yöntem 2: Kodu Yeniden Yaz
Kodu kopyalayıp Terminal'deki yeni bir dosyaya yapıştırdıysanız, hatayı düzeltmek için kodu manuel olarak yeniden yazmayı deneyebilirsiniz. Kodu kabuk komut dosyasında herhangi bir biçim hatası olmadan yazdıysanız, koddaki hatalar düzeltilebilir. Bunun nedeni, Microsoft Word gibi metin düzenleyicideki gizli karakterler ve biçimlendirme sorunları, kodu kopyalayıp yapıştırmak için kullanmış olabileceğiniz hata vermiş olabilir.
Yöntem 3: Dos2unix.exe Komutunu Kullanın
Unix İşletim Sistemi kullanıyorsanız, dosyada bir sonraki satıra geçmek için satır besleme karakteri ile \n kodları yazabilirsiniz. Ancak, bir Windows işletim sistemi kullanıyorsanız, satır başı ve satır beslemeyi veya dosyadaki \r\n'yi kullanarak kodda bir sonraki satıra geçmeniz gerekir. Windows işletim sisteminde yazılan kodu Cygwin'de çalıştırırsanız, beklenmeyen belirteç '(' yakınında Sözdizimi hatası alabilirsiniz.
Hatayı düzeltmek için, metin dosyası biçimi dönüştürücü olarak DOS'tan Unix'e komut satırı aracını kullanarak satır başı karakterlerini temizlemeniz gerekir. Aşağıdaki komutu Terminal'e dos2unix.exe example.sh olarak yazın ve dosyayı Unix formatına dönüştürebilirsiniz.
Önerilen:
- Android'de Telegram Hesabı Nasıl Oluşturulur
- Windows 10'da Çalışma Zamanı Hatası C++ Düzeltme
- Github Hesabı Kalıcı Olarak Nasıl Silinir?
- Linux için En İyi 14 Grafik Kartı
Makale, komut dosyasında beklenmeyen '(' simgesinin yanındaki Bash sözdizimi hatasını düzeltmenin temel yöntemlerini tartıştı. Bir Linux Bash kullanıyorsanız, beklenmeyen belirteç yakınındaki Bash sözdizimi hatasını düzeltmek için bu bölümde açıklanan yöntemleri kullanabilirsiniz. makalenin tamamını okudunuz ve içeriği faydalı buldunuz, lütfen yorum bölümünde önerilerinizi ve sorularınızı bize bildirin.