Bagaimana Anda menghilangkan "./" saat menjalankan skrip pada direktori saat ini

10

Pada beberapa tutorial melalui internet, mereka dapat menjalankan skrip pada direktori saat ini tanpa melakukan:

./script

Bagaimana Anda menghilangkan ini? Saya menggunakan CentOS 5.6 x64. Saya ingin menjalankannya dengan cara ini

script

Aivan Monceller
sumber
3
Perhatikan bahwa ini hampir selalu merupakan ide yang buruk, terutama untuk pengguna root.
David Schwartz
1
Apa tujuan / cerita di balik ./ Toh itu?
Pete
Saya hanya ingin tahu mengapa selalu perlu ./
Aivan Monceller
Komentar terakhir bisa menjadi pertanyaan IMHO terpisah - itu adalah hal penting untuk dipahami tentang menjalankan program secara umum!
rozcietrzewiacz
4
@Pete (dan Aivan): Di Linux / UNIX, shell hanya menjalankan program jika ia mengetahui path ke sana (apakah dengan menggunakan path yang Anda tentukan, atau dengan mencari variabel PATH). Itu tidak berasumsi bahwa Anda ingin mencari direktori saat ini seperti Windows. Itu mencari persis apa yang Anda minta untuk mencari melalui variabel PATH. '.' adalah referensi ke direktori saat ini. Jadi, ketika Anda mengetikkan './script.sh', Anda memberi tahu jalannya.
Kasius

Jawaban:

26

Salah satu dari:

  1. Tambahkan direktori kerja saat ini ke PATH Anda: PATH=${PATH}:.(ini dianggap sebagai risiko keamanan)
  2. Tambahkan jalur yang berisi skrip Anda ke variabel PATH secara eksplisit (ini bukan risiko keamanan jika akses tulis ke direktori itu terbatas)
  3. Masukkan skrip Anda ke tempat yang tepat di mana PATH sudah menunjuk (~ / bin, / usr / local / bin, ...)

Opsi terakhir mungkin yang terbaik.

Nils
sumber