Как я сравниваю метку времени двух файлов?
Я попробовал это, но это не работает:
file1time=`stat -c %Y fil1.txt`
file2time=`stat -c %Y file2.txt`
if[$file1time -gt $file2time];
then
doSomething
fi
Я распечатал и метки времени в порядке, и он дает мне
1273143480
1254144394
./script.sh: line 13: [1273143480: command not found
Так в основном, если сравнение не работает, я предполагаю. Или если существует какой-либо другой хороший путь, чем, что я делаю, сообщите мне. Что я должен изменить?
Операторы для сравнения меток времени:
[ $file1 -nt $file2 ]
[ $file1 -ot $file2 ]
Мнемосхема легка: 'более новый, чем' и 'более старый, чем'.
if
не является волшебным. Это пытается работать, команда передала ему, и проверки, если это имеет нулевой статус выхода. Это также не обрабатывает несуществующие аргументы хорошо, который является, почему необходимо заключить в кавычки переменные, используемые в нем.
if [ "$file1time" -gt "$file2time" ]
Это из-за некоторых недостающих пробелов. [
команда, таким образом, она должна иметь пробелы вокруг этого и ]
специальный параметр должен сказать это где его концы строки команды. Так, Ваша тестовая строка должна быть похожей:
if [ $file1time -gt $file2time ];