Các tiện ích tích hợp testvà [tiện ích có các bài kiểm tra -nt("mới hơn") và -ot("cũ hơn") trong hầu hết các trình bao, ngay cả khi trình bao đang chạy trong "chế độ POSIX" (cũng đúng với các tiện ích bên ngoài có cùng tên trên hệ thống mà tôi có quyền truy cập). Các thử nghiệm này là để so sánh dấu thời gian sửa đổi trên hai tệp. Ngữ nghĩa tài liệu của họ hơi khác nhau giữa các lần triển khai (liên quan đến những gì xảy ra nếu một hoặc tệp khác không tồn tại), nhưng chúng không được bao gồm trong thông số POSIX. cho các testtiện ích .
Chúng không được chuyển tiếp vào
testtiện ích khi lệnh điều kiện được gỡ bỏ khỏi trình bao [KornShell] vì chúng không được bao gồm trongtesttiện ích được tích hợp trong các triển khai lịch sử củashtiện ích.
Giả sử tôi muốn so sánh dấu thời gian sửa đổi giữa các tệp trong /bin/shtập lệnh shell và sau đó thực hiện hành động tùy thuộc vào việc một tệp có mới hơn tệp kia hay không, như trong
if [ "$sigfile" -nt "$timestamp" ] ||
[ "$sigfile.tmp" -nt "$timestamp" ]
then
return
fi
... Tôi có thể sử dụng tiện ích nào khác, ngoài make(điều này sẽ khiến phần còn lại của tập lệnh khó sử dụng nhất)? Hay tôi chỉ nên cho rằng không ai sẽ chạy kịch bản trên một "triển khai lịch sử sh", hoặc từ chức để viết cho một trình bao cụ thể như thế bashnào?
-nttính năngtesttheo cách được mong đợi kể từ khoảng. 1995. Bạn nên sử dụngfindbiểu thức cơ sở ngay cảbashkhi bạn thích hành vi đúng.