Yerleşik test
ve [
yardımcı programlar var -nt
( "daha yeni") ve -ot
aynı isimlerin dış programlar için geçerlidir da (kabuk "POSIX modunda" çalışması sırasında bile, çoğu kabuklarda ( "daha eski") testleri erişebildiğim sistemler). Bu testler, iki dosyadaki değişiklik zaman damgalarını karşılaştırmak içindir. Belgelendirilmiş semantikleri uygulamalar arasında biraz değişiklik gösterir (bir dosya veya başka bir dosya yoksa ne olacağı ile ilgili olarak), ancak POSIX spesifikasyonunatest
dahil edilmezler . için yarar .
Bunlar taşınmadığı edildi
test
bunlar dahil edilmemiştir, çünkü koşullu komut [KornShell] kabuğundan çıkarılmış yardımcıtest
tarihsel uygulamaları yerleşik yardımcısh
programı.
Bir /bin/sh
kabuk komut dosyasındaki dosyalar arasındaki değişiklik zaman damgasını karşılaştırmak ve sonra bir dosyanın diğerinden daha yeni olup olmadığına bağlı olarak işlem yapmak istediğimi varsayarsak
if [ "$sigfile" -nt "$timestamp" ] ||
[ "$sigfile.tmp" -nt "$timestamp" ]
then
return
fi
... başka hangi yardımcı programı da kullanabilirim make
(betiğin geri kalanını en azını söylemeye yaramaz)? Yoksa hiç kimsenin senaryoyu "tarihsel uygulaması" üzerinde çalıştırmayacağını sh
veya belirli bir kabuk için yazmaya istifa etmeyeceğini bash
mi varsaymalıyım ?
-nt
özelliğinitest
yakl. 1995. Doğru davranışıfind
sevseniz bile basd ifadesini kullanmalısınızbash
.