Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 12633|Yanıt: 0

[linux] /bin/bash^M: bad interpreter: No such file or directory

[Bağlantıyı kopyala]
Yayınlandı 13.06.2020 22:40:35 | | | |
Bir shell betiği çalıştırıldığında aşağıdaki hata geri döner:

-bash: ./log_job.sh: /bin/bash^M: kötü yorumlayıcı: Böyle bir dosya veya dizin yok
Hata nedenleri:

.sh betik Windows sisteminde yazılmıştır, bu yüzden görünmez karakterler olabilir; yukarıdaki hata sormasından dolayı script dosyasının DOS formatında olması çok muhtemeldir; yani her satırın sonu \r\n ile tanımlanır ve ASCII kodu sırasıyla 0x0D 0x0A olur.

Bir shell script çalıştırılırken görüntülenen hata esas olarak shell script dosyasının DOS formatında olmasından kaynaklanır; yani her satırın sonu \r\n ile tanımlanır ve UNIX format dosyasının sonu ise \n ile tanımlanır.

Özel not: ^M, tuşun kaydırması + 6 tarafından üretilen ^ ve M harfi değildir, bir karakterdir, ASCII'si 0x0D, bunu oluşturmanın yolu önce CTRL+V tuşuna basmak ve sonra enter (veya CTRL+M)


çözüm

Script dosyasının DOS veya UNIX formatında olup olmadığını kontrol etmenin birkaç yolu vardır.

(1) Script formatını kontrol edin: cat -A dosya adı Gösteri sonuçlarından dos formatında biten dosya satırının ^M$ olduğu ve unix formatında biten dosya satırının $ olduğu değerlendirilebilir.



(2) Dosyanın açılması ve çalıştırılması için betik formatını değiştirin: vi dosya adı:set ff=unixDosyayı unix olarak ayarlayın ve çalıştırın:wq, UNIX formatında kaydedildi.

  (3) Script formatını kontrol edin: cat -A dosya adı Görüntüleme sonucundan, dos formatında biten dosya satırının ^M$ olduğunu, unix formatında biten dosya satırının ise $ olduğunu anlayabilirsiniz.







Önceki:SSIS Tutorial 1 SQL Server Entegrasyon Hizmetlerine Giriş
Önümüzdeki:Nginx log bölmesi ve silme
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com