Apa sebenarnya yang dilakukan opsi "p" dari perintah `command` di bash shell?

Sep 06 2020

command perintah di bash: Jalankan perintah dengan argumen yang mengabaikan fungsi shell apa pun yang bernama perintah.

Opsi ' -p ' berarti menggunakan nilai default untuk $ PATH yang dijamin akan menemukan semua utilitas standar.

Apa sebenarnya PATH default yang disebutkan di sini? Ketika saya mendefinisikan export PATH="/home/ozgur/":$PATH, bukankah saya menambahkan jalur PATH baru di atas nilai default?

## For Example
~$ export PATH="/home/ozgur/":$PATH
~$ echo $PATH
/home/ozgur/:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
~$ script.sh hey, i am working ! ~$ command -p script.sh
hey, i am working !

Ketika saya menggunakan opsi " -p " dari commandperintah tersebut, saya mengharapkannya untuk mengabaikan jalur PATH baru yang telah saya tetapkan, tetapi itu tidak terjadi. Apa sebenarnya yang saya lewatkan di sini? Apa gunanya menggunakan opsi " -p " jika perubahan pada jalur PATH pengguna tidak diganti dengan opsi " -p "?

Jawaban

16 user414777 Sep 05 2020 at 23:54

Apa sebenarnya yang saya lewatkan di sini?

The script.shperintah hash. Jika dijalankan hash -r, maka command -p script.shakan gagal seperti yang diharapkan. Namun jika dijalankan secara langsung maka akan di-hash lagi.

Ini benar-benar terlihat seperti bug di bash - ini tidak terjadi di shell lain.