Я пытаюсь найти самую старую дату (в строковом формате) из списка элементов. Я не могу понять, почему сравнение не работает, что приводит к тому, что самая старая найденная дата всегда является временной самой старой датой, как показано здесь:
filedates=(20200110 20200120 20200219 20200220 20200420 20200422 20200110 20200120 20200219 20200220 20200420 20200422 20200219 20200220 20200420 20200422)
find_oldest_date (){
arr=("$@")
currentOldestDate=${arr[0]} # set a temporary oldest date
echo "Temporary oldest date: "$currentOldestDate
for date in "${arr[@]}"; do
currentDate=$date
if [[ "$currentDate" -lt "$currentOldestDate" ]]; then
oldestDateFound=$currentDate
else
oldestDateFound=$currentOldestDate
fi
done
echo "Oldest date found in directory: "$oldestDateFound
}
find_oldest_date "${filedates[@]}"
для сравнения, которое я также пробовал:
if [[ "$currentDate" < "$currentOldestDate" ]]
Или только с одинарными скобками и двойными кавычками, или с двойными скобками без кавычек ...
Требуется передать дату файла в качестве параметра, а не использовать его напрямую