Built-in test
dan [
utilitas memiliki tes -nt
("lebih baru dari") dan -ot
("lebih tua dari") di sebagian besar shell, bahkan ketika shell berjalan dalam "mode POSIX" (juga berlaku untuk utilitas eksternal dengan nama yang sama pada sistem yang saya punya akses). Tes ini untuk membandingkan cap waktu modifikasi pada dua file. Semantik terdokumentasi mereka sedikit berbeda di seluruh implementasi (berkaitan dengan apa yang terjadi jika satu atau file lain ada pada tidak), tetapi mereka tidak termasuk dalam spesifikasi POSIX. untuk test
utilitas .
Mereka tidak dibawa maju ke
test
utilitas ketika perintah kondisional dihapus dari shell [KornShell] karena mereka belum dimasukkan ke dalamtest
utilitas yang dibangun ke dalam implementasi historissh
utilitas.
Dengan asumsi saya ingin membandingkan timestamp modifikasi antara file dalam /bin/sh
skrip shell dan kemudian mengambil tindakan tergantung pada apakah satu file lebih baru dari yang lain, seperti pada
if [ "$sigfile" -nt "$timestamp" ] ||
[ "$sigfile.tmp" -nt "$timestamp" ]
then
return
fi
... utilitas lain apa yang bisa saya gunakan, selain dari make
(yang akan membuat sisa skrip sulit untuk sedikitnya)? Atau haruskah saya berasumsi bahwa tidak ada orang yang akan menjalankan skrip pada "implementasi historis sh
", atau mengundurkan diri untuk menulis untuk shell tertentu seperti bash
?
-nt
fiturtest
dengan cara yang diharapkan sejak kira-kira. 1995. Anda harus menggunakanfind
ekspresi basd bahkanbash
jika Anda suka perilaku yang benar.