Vài ngày trước tôi hài lòng với câu trả lời của mình. Tôi cũng biết rằng which
lệnh không được sử dụng để kiểm tra xem một lệnh có tồn tại hay không. Bây giờ tôi không hài lòng với câu trả lời của mình và tôi đề cập đến câu trả lời tuyệt vời này .
Với một which
lệnh đơn giản :
which foo.sh
Hoặc một type
lệnh:
type foo.sh
Và bạn có thể tác động đến điều này theo thứ tự các đường dẫn trong $PATH
hoặc thông qua một đường dẫn tuyệt đối khi tập lệnh bắt đầu, EG
/home/user/scripts/foo.sh
Thí dụ
Nếu PATH được định nghĩa như dưới đây
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Và bạn bắt đầu một tập lệnh hoặc một cái gì đó trong /usr/local/bin
và trong /usr/bin
, tập lệnh /usr/local/bin
có mức độ ưu tiên cao hơn.
bash
vàzsh
cũng có tíchtype
hợp; thay vào đózsh
which
, khác vớibash
, là một tích hợp (và không/usr/bin/which
)