Я заметил в вашем примере, что file.tag всегда имеет только одну строку: последний тег, правильно?
Дайте эту версию попробовать (протестировано и проверено с shellcheck):
#!/bin/bash
touch file.tag
date=$(date +"%y.%m.%d")
counter=0
if [ -s file.tag ]
then
lastline=$(tail -1 file.tag)
if [ "${date}" = "$(expr "${lastline}" : "^\([0-9.][0-9.]*\)[.][0-9][0-9]*$")" ]
then
counter=$(expr "${lastline}" : "^[0-9.][0-9.]*[.]\([0-9][0-9]*\)$")
counter=$((counter + 1))
fi
fi
printf "%s\n" "${date}.${counter}" > file.tag
скрипт проверяет, если file.tag не пусто.
Если не пуст, он извлекает последнюю дату из файла file.tag и сравнивает ее с текущей датой.
Если даты равны, то он извлекает последнее значение счетчика из file.tag и увеличения его
, наконец он обновляет file.tag с новым тегом
Удачи с этим. – 123
'#!/Bin/Баш сенсорный file.tag счетчик = 0 дата = $ (дата + "% г.% М.% D") эхо дата $. $ Счетчик> file.tag' – d0pchu
и сейчас im здесь, и я не могу переместить – d0pchu