I'm belajar melalui tutorial ini untuk belajar bash script untuk mengotomatisasi beberapa tugas untuk saya. I'm menghubungkan ke server dengan menggunakan putty.
Script, terletak di.../Dokumen/LOG`, adalah:
#!/bin/bash
# My first script
echo "Hello World!"
Dan saya dieksekusi berikut untuk membaca/menulis/mengeksekusi perizinan
chmod 755 my_script
Kemudian, ketika saya memasukkan ./my_script
, aku'm mendapatkan galat yang diberikan dalam judul.
Beberapa pertanyaan serupa ingin melihat ini, jadi saya pikir mereka mungkin bisa membantu:
which bash
/bin/bash
dan
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/bin/mh
Saya mencoba menambahkan direktori saat ini ke JALAN
, tapi itu doesn't bekerja..
Saya telah melihat masalah ini saat membuat script di Windows dan kemudian porting ke berjalan di lingkungan Unix.
Coba jalankan dos2unix
pada script:
http://dos2unix.sourceforge.net/
Atau hanya menulis ulang script pada Unix env menggunakan vi
dan tes.
Unix menggunakan garis yang berbeda akhiran agar bisa't baca file yang anda buat pada Windows. Oleh karena itu melihat ^M sebagai karakter ilegal.
Jika anda ingin menulis file pada Windows dan kemudian port di atas, pastikan anda editor diatur untuk membuat file dalam format UNIX.
Di notepad++ di bagian kanan bawah layar, itu memberitahu anda format dokumen. Secara default, ia akan berkata Dos\Windows
. Untuk mengubah itu pergi ke
Jalankan perintah berikut di terminal
sed -i -e 's/\r$//' scriptname.sh
Kemudian coba
./scriptname.sh
Itu harus bekerja.
Jika anda menggunakan Sublime Text pada Windows atau Mac untuk mengedit script anda:
Klik View > Line Akhiran > Unix
dan *menyimpan *** file lagi.
masalahnya adalah dengan dos garis akhir. Berikut ini akan mengubahnya untuk unix
dos2unix file_name
NB: anda mungkin perlu untuk menginstal dos2unix pertama dengan yum install dos2unix
cara lain untuk melakukannya adalah dengan menggunakan sed
perintah untuk mencari dan mengganti dos garis akhir karakter ke format unix:
$sed -i -e 's/\r$//' your_script.sh
Untuk Eclipse pengguna, anda dapat mengubah file encoding langsung dari menu File > Mengkonversi Garis Pembatas Untuk > Unix (LF, \n, 0Α, ¶)
:
Atau mengubah file teks Baru garis pembatas
ke Lain: Unix
pada Jendela > Preferensi > Umum > ruang Kerja
panel:
Saya mampu menyelesaikan masalah dengan membuka naskah di Gedit dan menyimpannya dengan tepat Garis Akhir
pilihan:
File > Save As...
Di bagian kiri bawah Save As
prompt, ada menu drop-down untuk Pengkodean Karakter dan Garis Akhir. Perubahan Baris Akhir dari Windows
untuk Unix/Linux
kemudian Simpan.
![gedit "Simpan Sebagai" prompt]]1
Saya mengembangkan aplikasi di Windows dan Mac/Linux pada saat yang sama dan saya menghindari hal ini ^M-kesalahan dengan hanya menjalankan script saya seperti yang saya lakukan di Windows:
$ php ./my_script
Tidak perlu mengubah akhir baris.