Если вы хотите «вручную» проверить изменение метки времени модификации, а не фактическую разницу в содержании, вам потребуется:
stat -c% y $ 1
последовательно с ] разделяющие пространства и внутри $ (...)
. Еще лучше, stat -c% y "$ 1"
будет работать, если ваше имя файла содержит пробелы или какой-либо символ «подстановки»
, тест с классическим [...]
или ] test ...
и "$ var"
(потому что stat% y
содержит пробелы; stat% Y
позволит избежать этого) или с расширением bash [[...]]
, который не требует кавычек, но не (...)
, который делает что-то совершенно другое, а именно выполняется в подоболочке
некоторая задержка между циклы, чтобы это не перегружало вашу систему
#!/bin/bash
date=$(stat -c %y "$1")
while sleep 1; do date2=$(stat -c %y "$1")
if [[ $date2 != $date ]]; then echo "changed!"; break; fi
# possibly exit [status] instead of break
# or if you want to watch for another change, date=$date2
done