"Command not found" saat menjalankan skrip shell. Apa yang saya hancurkan?


8

Saya menggunakan OSX Snow Leopard.

Inilah isi lengkap dari grr.sh:

#!/bin/sh

echo wow

Ketika saya mencoba menjalankannya dari terminal:

$ grr.sh
-bash: grr.sh: command not found
$ /bin/sh grr.sh
wow
$ sh grr.sh
wow
$ bash grr.sh
wow

Baik. Cukup adil. Saya akan memberikan izin yang dapat dieksekusi, lalu coba lagi:

$ chmod +x grr.sh
$ grr.sh
-bash: grr.sh: command not found
$ chmod 755 grr.sh
$ grr.sh
-bash: grr.sh: command not found

Hmmm. Mungkin itu akan berhasil jika saya menggunakan bash secara eksplisit? Saya akan mengubah konten file menjadi:

#!/bin/bash

echo wow

Dan saya mendapatkan hasil yang sama persis. Apa yang bisa saya rusak ?!

Satu hal terakhir! Jika Anda penasaran ...

$ which sh
/bin/sh

Jawaban:


19

Sama sekali tidak ada. Hanya executable di salah satu direktori yang $PATHdapat dijalankan secara langsung, dan .(biasanya) tidak pernah aktif $PATH. Tentukan path ke executable, yaitu ./grr.sh.


3
+1. Sebagai catatan, direktori saat ini ada di jalur pada sistem Windows secara default, dan prioritas tertinggi. Perbedaan penting ini mungkin merupakan sumber kebingungan si penanya.
afrazier

Anda pertama kali 9 detik! Terima kasih!
Penutupan Cowboy

Anda menyimpan macbook saya
vietnguyen09

7

Apakah lokasi grr.sh dalam $PATHvariabel? Jika tidak, Anda harus memasukkan:

./grr.sh

jika Anda berada di folder yang sama dengan grr.sh. Jika tidak, maka berikan path lengkap untuk itu.


6

izin untuk file salah. Coba perintah berikut:

  $ chmod 777 file.sh
  $ ./file.sh

0

Ya, dan apa artinya ./grr.sh, adalah bahwa dalam direktori ini, jalankan perintah grr.sh. Tunggal . berarti di direktori kerja. Jika tidak, shell Anda menganggap Anda mencoba menjalankan perintah di $ PATH Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.