Các lệnh tích hợp luôn được ưu tiên hơn các lệnh bên ngoài. Lý do là lệnh tích hợp nhanh hơn (và trong một vài trường hợp, chẳng hạn như cd
hoặc , chỉ có lệnh tích hợp mới có thể có hiệu quả mong muốn).test -o BASH_OPTION
Đôi khi lệnh bên ngoài có thể có các khả năng mà shell dựng sẵn không có. Trong trường hợp đó, bạn có thể gọi lệnh bên ngoài bằng cách đưa ra một đường dẫn rõ ràng (nghĩa là chứa dấu gạch chéo) (điều này bỏ qua mọi mối quan tâm về thứ tự trong $PATH
). Nếu bạn không muốn mã hóa đường dẫn bên ngoài nhưng bạn muốn ngăn việc sử dụng nội dung, bạn có thể sử dụng "$(type -P test)"
(ghi chú vốn P
) trong bash, "$(whence -p test)"
trong ksh và =test
trong zsh. Một cách khác để buộc sử dụng lệnh bên ngoài là sử dụng hàm command
dựng sẵn ( command -p test …
) hoặc đi qua env
tiện ích ( env test …
).
Trong zsh, bạn có thể vô hiệu hóa nội dung với disable test
. Điều này là vĩnh viễn (đối với lớp vỏ hiện tại hoặc lớp vỏ con) cho đến khi phần dựng sẵn được kích hoạt lại enable test
. Trong bash, bạn có thể làm tương tự với enable -n test
để vô hiệu hóa và enable test
kích hoạt lại.
Bạn có thể sử dụng một bí danh hoặc hàm để buộc thực thi một lệnh khác, ví dụ alias test=/usr/bin/test
hoặc test () { /usr/bin/test "$@"; }
. Nếu bạn có một bí danh như vậy, bạn có thể ngăn việc sử dụng nó bằng cách trích dẫn bất kỳ phần nào của nó, ví dụ như \test
sẽ thực hiện chức năng bình thường / dựng sẵn / tra cứu bên ngoài. Lưu ý rằng tùy thuộc vào trình bao và cài đặt của nó, các định nghĩa bí danh trong một hàm có thể được mở rộng khi một hàm được đọc hoặc khi nó được thực thi. Nếu bạn đã xác định một chức năng, bạn có thể sử dụng command test
để ngăn chặn tra cứu chức năng cũng như tra cứu bí danh (vì vậy ở đây, test
nội dung sẽ được gọi trừ khi bị tắt).
/usr/bin/test -f "$file"
...