Intereting Posts
Скрипт для отправки PDF-файлов В чем разница между `/ dev / input / event *` и `/ dev / input / mouse *` согласно мышам? Как заставить мой сервер использовать файл hosts для разрешения имен? xdg-open открывает другое приложение, указанное в запросе xdg-mime Использовать псевдонимы в качестве пользовательских команд в терминаторе Способ записи нового имени файла на подстановочный знак? В каком месте оболочка назначает нормальную переменную? почему NTPD постоянно пытается обновить? Могу ли я легко переустановить внешний USB-накопитель, не отсоединяя его? Имена файлов сценария сценария Как настроить Postfix для предотвращения подмены отправителя? Как `du` только пространство, израсходованное файлами, которые не привязаны в другом месте? Запускать мои собственные команды над открытым файлом меньше. Является ли это возможным? Может ли selinux регистрировать имя владельца приложения? Как удалить информацию о масштабировании из закладки PDF

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

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

a="2013" 

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

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

 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 .