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


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.

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.