Saya bertanya-tanya apakah ada yang setara dengan Unix untuk variabel lingkungan Windows PATHEXT
.
Bagi mereka yang tidak memiliki latar belakang Windows: Menambahkan akhiran file PATHEXT
memungkinkan saya untuk menjalankan skrip tanpa mengetikkan akhiran itu di cmd.exe. Sebagai contoh, di komputer Windows saya, PATHEXT berisi akhiran .pl
dan ketika saya ingin menjalankan skrip Perl di cmd.exe, saya cukup mengetik my-script
dan dijalankan. Namun, dalam rangka untuk menjalankan script yang sama di bash, saya harus menulis nama lengkap: my-script.pl
.
Karena saya bekerja pada Windows dan Unix saat ini, saya hampir selalu jatuh ke dalam perangkap lupa mengetikkan akhiran ketika pergi ke kotak Unix lagi.
shell
environment-variables
René Nyffenegger
sumber
sumber
.sh
didahului.pl
,foo.sh
akan dijalankan. stackoverflow.com/a/7839178/180275Jawaban:
singkat: tidak
lebih lama: skrip shell memerlukan nama file lengkap, tetapi Anda dapat menentukan alias untuk perintah Anda untuk merujuknya dengan berbagai nama. Sebagai contoh
sumber
Solusi paling sederhana adalah tidak menggunakan ekstensi untuk skrip Anda. Mereka tidak perlu dan hanya berfungsi untuk mengidentifikasi jenis skrip untuk Anda, tetapi tidak untuk komputer. Sementara Windows menggunakan ekstensi untuk mengidentifikasi jenis file, sistem * nix (dengan sangat sedikit pengecualian seperti
gzip
) tidak.Perhatikan bahwa binari tidak memiliki
.exe
ekstensi di * nix, hanya dipanggilfoo
, tidakfoo.exe
. Jadi, jika Anda inginfoo.pl
dapat dieksekusi sebagaifoo
, cukup simpan file sepertifoo
di tempat pertama.Atau, jika Anda benar-benar perlu memiliki ekstensi untuk beberapa alasan, masuklah ke direktori apa pun yang Anda simpan skrip Anda dan jalankan ini:
Itu akan mengulangi semua file dengan ekstensi dan, untuk setiap file
foo.ext
, akan membuat tautan yang disebut kefoo
manafoo.ext
. Perhatikan bahwa ini akan gagal jika Anda memiliki banyak skrip dengan nama yang sama tetapi ekstensi berbeda.sumber
Jika Anda benar-benar ingin melakukannya, ada caranya. Tambahkan yang berikut ini di akhir
.bashrc
direktori home Anda, dan setelPATHEXT
ke nama ekstensi dengan titik-titik yang dipisahkan oleh:
. (Diubah untuk memasukkan titik-titik yang sesuai dengan perilaku Windows.) Gunakan dengan risiko Anda sendiri.Juga ingat bahwa Anda dapat menggunakan tab untuk melengkapi nama perintah jika tidak ada perintah lain juga dimulai dengan
my-script
.sumber