Я пытаюсь автоматизировать файлы переименовывать/создание, у меня есть первоначальный сценарий для тестирования, я уже посмотрел вокруг, я не могу найти что-нибудь связанноеIncrement нулевого проложенный ИНТ в цикле Баша
здесь мой образец сценарий
#!/bin/bash
file=`hostname`
if [[ -e $file.dx ]] ; then
i="$(printf "%03d" 1)"
while [[ -e $name-$i.dx ]] ; do
let i++
done
name=$name-$i
fi
touch $name.dx
скрипт отлично работает, когда исходные файлы нет/есть, но начать идет не так после 3 появления, как и в ш -х ниже
[email protected] ~/junkyard
$ sh -x exp.sh
++ hostname
+ name=cygwinhost
+ [[ -e cygwinhost.ext ]]
+ touch cygwinhost.ext
[email protected] ~/junkyard
$ sh -x exp.sh
++ hostname
+ name=cygwinhost
+ [[ -e cygwinhost.ext ]]
++ printf %03d 1
+ i=001
+ [[ -e cygwinhost-001.ext ]]
+ name=cygwinhost-001
+ touch cygwinhost-001.ext
[email protected] ~/junkyard
$ sh -x exp.sh
++ hostname
+ name=cygwinhost
+ [[ -e cygwinhost.ext ]]
++ printf %03d 1
+ i=001
+ [[ -e cygwinhost-001.ext ]]
+ let i++
+ [[ -e cygwinhost-2.ext ]]
+ name=cygwinhost-2
+ touch cygwinhost-2.ext
[email protected] ~/junkyard
$
после 001 он Откат к -2 без ведущие нули, любой вход на то, что я сделал неправильно очень ценится
Благодаря
также появляется искать некоторые переменные окружение $ файлов , если он не установлен, ваш скрипт создаст скрытый файл с именем .dx в текущем каталоге ... возможно, переместите 'touch' в тестовый блок – technosaurus
Btw: без нового процесса:' printf -vi '% 03d "1' – Cyrus
$ файл в скрипте кажется опечаткой от меня :) – skelator