Решение @jherran должно соответствовать вашим потребностям. Если вы просто хотите, чтобы скрипт дал вам следующее имя файла, а не создавал его для вас, измените "touch" на "echo" в конце его скрипта.
Тем не менее, это будет все медленнее и медленнее, когда вы добавляете много файлов. Если вам нужны последовательные числа, вы можете просто записать текущий номер в файл, затем прочитать его обратно перед записью следующего файла, записать новый номер и записать свой файл. Я предоставил пример кода для этого ниже.
Однако, если вам не нужны последовательные числа, и вы просто хотите, чтобы имена файлов не сталкивались, отметки даты очень полезны. Они сортируются так, как вы ожидаете, и, если вы не путешествуете во времени, монотонно растут.
Для ответа на заданный вами вопрос (сценарий оболочки для возврата следующего значения), основанный на моем предложении выше об использовании файла счетчика, вот что:
#!/usr/bin/sh
if [ -f counter.txt ]; then
{
VAL=`cat counter.txt`
echo "out-$VAL.avi"
VAL=`expr $VAL + 1`
echo "$VAL" > counter.txt
exit 0
}
fi
echo "out-1.avi"
echo "2" > counter.txt
exit 0
Или, если вы хотите согласиться с моим предложением штампов даты для уникальности и сортировки, просто попросите вашу программу записи файлов получить вывод этой команды:
date +%F-%T
или любой детализации дат и времени, которые вы считаете полезными. Вышесказанное даст вам что-то вроде этого:
2014-12-01-16:41:33
Ударьте «.avi» в конце, и у вас есть временные имена файлов, вплоть до второго.