Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Инкремент на баше  (Прочитано 6827 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн RCuPeR

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
  • Freedom
    • Просмотр профиля
Инкремент на баше
« : 04 Января 2012, 17:21:46 »
В общем, нужно при каждом обращении к скрипту в переменную записывать n + 1 (отсчет начиная снуля).
Т.е, если я 3 раза обратился к файлу - переменная i хранит в себе целочисленный тип "2".

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Инкремент на баше
« Ответ #1 : 05 Января 2012, 09:19:03 »
Код: (bash) [Выделить]
i=0
while [ $i -lt 10 ]; do
    echo $i
    i=$(($i+1))
done

Оффлайн RCuPeR

  • Автор темы
  • Новичок
  • *
  • Сообщений: 28
  • Freedom
    • Просмотр профиля
Re: Инкремент на баше
« Ответ #2 : 06 Января 2012, 16:29:28 »
Так это же цикл while.
По идее он должен вывести числа 0...10.
Мне нужно несколько иное:
при каждом обращению к скрипту записывать +1 в хранилище (допустим файлик).

Оффлайн Alie Alexandross

  • Старожил
  • *
  • Сообщений: 1576
    • Просмотр профиля
Re: Инкремент на баше
« Ответ #3 : 06 Января 2012, 16:47:10 »
_COUNT=$(cat .log);
$_COUNT=$(($_COUNT+1));
echo $_COUNT > .log;

i=0
while [ $i -lt 10 ]; do
    echo $i
    i=$(($i+1))
done
Подпись автора jillsmitt истинна...

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Инкремент на баше
« Ответ #4 : 06 Января 2012, 16:50:24 »
Код: (bash) [Выделить]
i=$(cat file) ; echo $((++i)) >file ; echo $i

 

Страница сгенерирована за 0.054 секунд. Запросов: 25.