Skip to content

emka.web.id

Menu
  • Home
  • Indeks Artikel
  • Tutorial
  • Tentang Kami
Menu

Perbaiki: Kesalahan "Penerjemah Buruk: Tidak Ada File atau Direktori Seperti Itu" di Linux

Jika Anda mendapatkan kesalahan "penerjemah buruk: tidak ada file atau direktori seperti itu" saat menjalankan skrip shell, Anda perlu mengonversi file skrip Anda dari akhir baris Windows ke Unix. Salah satu caranya adalah dengan menggunakan perintah dos2unix, seperti ini: dos2unix script1.sh Apakah Anda mencoba menjalankan skrip Bash dan mendapatkan pesan kesalahan "/bin/bash^M: bad interpreter: No such file or directory"? Outputnya tidak terlalu membantu dan hampir memberi kesan skrip Anda hilang. Untungnya, bukan itu masalahnya, dan perbaikannya sangat sederhana.

Apa Itu Kesalahan "Penerjemah Buruk: Tidak Ada File atau Direktori Seperti Itu"?

Mendapatkan pesan kesalahan yang berbunyi /bin/bash^M: penerjemah buruk: Tidak ada file atau direktori hanya berarti bahwa file skrip shell Anda memiliki akhiran baris yang salah—karakter ditempatkan di akhir baris yang menunjukkan saatnya untuk pindah ke baris berikutnya. Windows turunan DOS suka melihat terminator “carriage return and line feed” (CRLF), dengan notasi rn. Sebaliknya, Linux, macOS modern, dan sistem berbasis Unix lainnya hanya menggunakan “line feed” (LF), atau n. Jika Anda melihat kesalahan penerjemah yang buruk ini, kemungkinan Anda atau orang yang mendapatkan skrip tersebut awalnya menulisnya di komputer Windows. Bash melihat rn akhiran baris yang disetel oleh komputer Windows dan menjadi kesal karena mencegah shell menafsirkan skrip Anda dengan benar. Anda bahkan dapat mengonfirmasi masalah di terminal Linux dengan mengarahkan perintah file ke script. file script1 Anda. sh Jika file menggunakan akhiran baris DOS, Anda akan melihat pesan “with CRLF line terminators” ditambahkan di output. Seandainya skrip kami menggunakan baris baru Unix (LF) yang tepat, itu tidak akan menyebutkan terminator sama sekali. Untungnya, kembali ke bisnis LF itu mudah.

Cara Memperbaiki "Penerjemah Buruk: Tidak Ada File atau Direktori Seperti Itu" Error

Yang diperlukan untuk menghilangkan pesan kesalahan itu dan mulai menjalankan skrip Anda seperti biasa adalah beralih dari akhir baris DOS ke baris Unix akhiran. Anda dapat melakukan ini dengan perintah terminal atau di editor kode favorit Anda. Berikut adalah delapan cara untuk memperbaikinya: Menggunakan Perintah dos2unix Ada program baris perintah yang dibuat hanya untuk mengonversi file DOS (alias, Windows) menjadi file yang sepenuhnya kompatibel dengan Unix yang diberi nama dos2unix. Ini tersedia di sebagian besar repositori default, sehingga Anda dapat menginstalnya di Ubuntu dengan: sudo apt install dos2unix Pada instalasi Fedora kami, dos2unix telah diinstal sebelumnya, tetapi Anda dapat mengonfirmasi bahwa Anda memilikinya dengan: sudo dnf install dos2unix Di Arch Linux: sudo pacman -S dos2unix Menggunakan dos2unix adalah sederhana; berikan saja nama file Anda. dos2unix script1.sh Periksa dengan file jika Anda ingin memastikan konversi berhasil sebelum menjalankan skrip Anda. Anda juga dapat mengonversi secara massal dengan menamai banyak file yang dipisahkan hanya dengan spasi. dos2unix script1.sh script2.sh script3.sh Atau, jika Anda memiliki penamaan file yang konsisten, tentu saja Anda dapat menulis perintah yang lebih singkat menggunakan skrip wildcards. dos2unix*.sh The dos2unix perintah memiliki beberapa tanda untuk membantu Anda membuat jenis konversi khusus, seperti mengubah kepemilikan file. Anda bahkan dapat menggunakannya dalam bentuk terbalik, unix2dos, jika Anda ingin beralih kembali ke CRLF. Masukkan dos2unix --help untuk mempelajari lebih lanjut. Menggunakan tr Command Jika Anda tidak dapat atau tidak ingin menginstal utilitas khusus, Linux memiliki alat bawaan yang akan membersihkan baris baru tersebut. Dengan perintah tr, Anda dapat menghapus r bagian akhir baris sehingga tersisa n terminators. tr -d 'r' script1_unix.sh Di sini, tr mengambil teks dari script1.sh, menghapus setiap instance dari r yang ditemukannya, dan menyimpan hasilnya sebagai file script1_unix.sh. Menggunakan sed Command Perintah sed yang hebat yang ada di dalam shell Anda juga dapat mengubah akhiran baris untuk file Anda. ed -i 's /r//' script1.sh Jika Anda tidak terbiasa dengan sintaks sed, kami memberi tahu sed untuk mengedit file kami (-i) dan mengganti (s/) setiap carriage return (r) dengan nol. Itu membuat kita dengan n line terminators. Using vi atau vim yang disukai UnixJika Anda menggunakan vi atau vim untuk mengedit skrip Anda, cukup berikan perintah ini untuk mengonversi file yang saat ini terbuka ke akhiran baris Unix. :set fileformat=unix Menggunakan Geany Jika Anda bekerja di lingkungan desktop, tidak ada alasan untuk bermain-main di terminal hanya untuk membuat file Anda siap untuk dunia Unix. Hampir setiap editor kode dan IDE di luar sana memiliki toggle untuk akhiran baris. Itu termasuk Geany. Untuk mengonversi akhir baris di Geany, buka Document > Set Line Endings > Convert and Set to LF (Unix). Simpan skrip Anda dan coba jalankan lagi. Menggunakan Kate atau Kwrite Jika Anda menggunakan Kwrite untuk mengedit skrip Anda, atau Kate, sepupu Kwrite yang lebih kuat, Anda dapat mengonversi ke format LF dengan mengeklik Alat > Ujung Baris > Unix. Simpan file dan jalankan kembali skrip Anda. Menggunakan Notepad++ Jika Anda mengedit kode di Notepad++, Anda juga dapat dengan mudah mengonversi akhiran baris, yang berguna karena Anda mungkin menjalankannya di Windows (kecuali Anda telah menginstal Notepad++ untuk Linux) dan dapat mengonversinya sebelum pindah ke sistem Linux Anda. Dengan file terbuka, buka Edit > Konversi EOL > Unix (LF). Pastikan untuk menyimpan skrip Anda sebelum menjalankannya. Jika Anda ingin Notepad++ membuat file dengan akhiran baris Unix secara default, buka Pengaturan > Preferensi, pilih " Tab New Document”, dan di bawah opsi “Format (line ending)” klik tombol radio “Unix (LF)”. . Cukup klik "CRLF" di pojok kanan bawah jendela VS Code. Anda juga dapat menyetel VS Code untuk menggunakan akhiran baris Unix secara default dengan membuka File > Preferensi > Setelan dan mengetik eol di bilah penelusuran setelan. Hasil teratas harus menjadi menu drop-down untuk mengatur "Eol". Ubah ke “n”. Disadur dari HowToGeek.com.Artikel Diperbarui pada: April 18, 2023
Kontributor: Syauqi Wiryahasana
Model: Haifa Manik Intani
Seedbacklink

Recent Posts

TENTANG EMKA.WEB>ID

EMKA.WEB.ID adalah blog seputar teknologi informasi, edukasi dan ke-NU-an yang hadir sejak tahun 2011. Kontak: kontak@emka.web.id.

©2024 emka.web.id Proudly powered by wpStatically