Изменить значение строк, представляющих число

У меня есть следующее выражение:

a="2013" 

Как изменить значение a на "2012" .

3 Solutions collect form web for “Изменить значение строк, представляющих число”

Просто используйте $(()) для арифметики оболочки:

 a=$(($a-1)) 

Вы можете либо использовать стандартный $(()) как предложено Джозефом Р., либо, с некоторыми оболочками ( ksh , bash , zsh ), вы можете использовать let :

 $ a="2013" $ let a--; ## Or let "a=$a-1" $ echo "$a" 2012 

Кратким способом, использующим арифметическое расширение, было бы

 a=$((a-1)) 

или просто

 ((--a)) 

Обратите внимание, что последний синтаксис, который не задан POSIX, но поддерживается как минимум ksh и bash .

  • ] работает в AIX 6.1, но не на AIX 7.1 (ksh)
  • Как найти старые каталоги в локальном каталоге, используя find в AIX?
  • Динамическая переменная в скрипте KornShell
  • Почему a = 0; let a ++ return exit code 1?
  • Как я могу безопасно получить версию ksh?
  • В чем опасность установки максимального предела максимальным дескрипторам файлов для каждого процесса?
  • Как проверить строку в строке с помощью оператора if?
  • Как передать ряд шаблонов в awk из сценария оболочки?
  • установить -xv поведение в ksh vs bash
  • Разница между эхом и печатью в оболочке Korn
  • Как заменить исходное значение переменной в теге HTML
  • Linux и Unix - лучшая ОС в мире.