<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://adm30.ru/index.php?action=history&amp;feed=atom&amp;title=Bash</id>
	<title>Bash - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://adm30.ru/index.php?action=history&amp;feed=atom&amp;title=Bash"/>
	<link rel="alternate" type="text/html" href="https://adm30.ru/index.php?title=Bash&amp;action=history"/>
	<updated>2026-10-19T23:20:30Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.41.5</generator>
	<entry>
		<id>https://adm30.ru/index.php?title=Bash&amp;diff=2824&amp;oldid=prev</id>
		<title>Admin: /* Переменные */</title>
		<link rel="alternate" type="text/html" href="https://adm30.ru/index.php?title=Bash&amp;diff=2824&amp;oldid=prev"/>
		<updated>2025-08-09T02:39:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Переменные&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Оболочка ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;HISTSIZE&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;HISTFILE&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;PATH=&amp;quot;/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;font style=&amp;quot;color:#505050;&amp;quot;&amp;gt;//lxc debian&amp;lt;/font&amp;gt;&lt;br /&gt;
 PATH=&amp;quot;$PATH:/bin:/sbin&amp;quot;&lt;br /&gt;
 export PATH&lt;br /&gt;
&lt;br /&gt;
=== Приемы ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd -&amp;lt;/code&amp;gt; &amp;lt;font style=&amp;quot;color:#505050;&amp;quot;&amp;gt;//аналогично cd $PWDOLD&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!!&amp;lt;/code&amp;gt; &amp;lt;font style=&amp;quot;color:#505050;&amp;quot;&amp;gt;//повторное использование предыдущей команды&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;!rm&amp;lt;/code&amp;gt; &amp;lt;font style=&amp;quot;color:#505050;&amp;quot;&amp;gt;//повторное использование последней команды rm&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ee=2 ; for i in $(echo eval {1..$ee}) ; do echo $i ; done&amp;lt;/code&amp;gt; &amp;lt;font style=&amp;quot;color:#505050;&amp;quot;&amp;gt;//по умолчанию сначала раскрываются фигурные скобки, а потом переменные; eval дает сначала раскрыться переменным&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ANSI escape-последовательности ===&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\033[0m&amp;quot; &amp;lt;font style=&amp;quot;color:#505050;&amp;quot;&amp;gt;//сброс&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\033[${INT};${INT}m&amp;quot; &amp;lt;font style=&amp;quot;color:#505050;&amp;quot;&amp;gt;//несколько значений через точку с запятой&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!color||text||bg&lt;br /&gt;
|-&lt;br /&gt;
|black||30||40&lt;br /&gt;
|-&lt;br /&gt;
|red||31||41&lt;br /&gt;
|-&lt;br /&gt;
|green||32||42&lt;br /&gt;
|-&lt;br /&gt;
|yellow||33||43&lt;br /&gt;
|-&lt;br /&gt;
|blue||34||44&lt;br /&gt;
|-&lt;br /&gt;
|purple||35||45&lt;br /&gt;
|-&lt;br /&gt;
|cyan||36||46&lt;br /&gt;
|-&lt;br /&gt;
|white||37||47&lt;br /&gt;
|-&lt;br /&gt;
!style||on||off&lt;br /&gt;
|-&lt;br /&gt;
|bold||1||22&lt;br /&gt;
|-&lt;br /&gt;
|italic||3||23&lt;br /&gt;
|-&lt;br /&gt;
|underline||4||24&lt;br /&gt;
|-&lt;br /&gt;
|inverse||7||27&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PS1 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Обозначение||Описание&lt;br /&gt;
|-&lt;br /&gt;
|\a||ASCII-символ bell (07)&lt;br /&gt;
|-&lt;br /&gt;
|\d||Дата в формате «День недели Месяц Дата» (например, «Пн Ноя 26»)&lt;br /&gt;
|-&lt;br /&gt;
|\D{format}||Значение format передается функции strftime. В строку приглашения подставляется результат выполнения функции. Фигурные скобки обязательны.&lt;br /&gt;
|-&lt;br /&gt;
|\e||ASCII-символ escape (033)&lt;br /&gt;
|-&lt;br /&gt;
|\h||Hostname (имя хоста) до первого символа точка «.».&lt;br /&gt;
|-&lt;br /&gt;
|\H||Hostname (имя хоста, компьютера).&lt;br /&gt;
|-&lt;br /&gt;
|\j||Количество фоновых процессов, запущенных в данной оболочке&lt;br /&gt;
|-&lt;br /&gt;
|\l||Базовое название оболочки.&lt;br /&gt;
|-&lt;br /&gt;
|\n||Переход на новую строку.&lt;br /&gt;
|-&lt;br /&gt;
|\r||Переход к началу строки (возврат каретки).&lt;br /&gt;
|-&lt;br /&gt;
|\s||Имя оболочки (имя shell).&lt;br /&gt;
|-&lt;br /&gt;
|\t||Текущее время в 24-часовом формате (HH:MM:SS).&lt;br /&gt;
|-&lt;br /&gt;
|\T||Текущее время в 12-часовом формате (HH:MM:SS).&lt;br /&gt;
|-&lt;br /&gt;
|\@||Текущее время в 12-часовом am/pm формате.&lt;br /&gt;
|-&lt;br /&gt;
|\A||Текущее время в 24-часовом формате (HH:MM).&lt;br /&gt;
|-&lt;br /&gt;
|\u||Имя пользователя.&lt;br /&gt;
|-&lt;br /&gt;
|\v||Версия bash (например, 4.4).&lt;br /&gt;
|-&lt;br /&gt;
|\V||Версия bash с версией релиза (например, 4.4.19).&lt;br /&gt;
|-&lt;br /&gt;
|\w||Текущий абсолютный путь (полный путь). Домашняя директория сокращается до значка тильды «~».&lt;br /&gt;
|-&lt;br /&gt;
|\W||Текущий относительный путь. Домашняя директория сокращается до значка тильды «~».&lt;br /&gt;
|-&lt;br /&gt;
|\!||Номер команды в истории команд (history).&lt;br /&gt;
|-&lt;br /&gt;
|\#||Номер команды в текущей сессии терминала.&lt;br /&gt;
|-&lt;br /&gt;
|\$||Символ приглашения (# для root, $ для обычных пользователей).&lt;br /&gt;
|-&lt;br /&gt;
|\nnn||Символ, соответствующий восьмеричному значению nnn.&lt;br /&gt;
|-&lt;br /&gt;
|\\||Символ обратной косой черты «\».&lt;br /&gt;
|-&lt;br /&gt;
|\[||Начало последовательности непечатаемых символов.&lt;br /&gt;
|-&lt;br /&gt;
|\]||Конец последовательности.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
&lt;br /&gt;
=== Переменные ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;IFS=$'\n'&amp;lt;/code&amp;gt; //разделитель полей — только перевод строки&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;IFS=:&amp;lt;/code&amp;gt; //разделитель полей — знак &amp;quot;:&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$$&amp;lt;/code&amp;gt; //PID самого скрипта&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$!&amp;lt;/code&amp;gt; //PID последнего запущенного в фоне процесса&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$#&amp;lt;/code&amp;gt; //общее количество параметров переданных скрипту&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$*&amp;lt;/code&amp;gt; //все аргументы переданыне скрипту(выводятся в строку)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$@&amp;lt;/code&amp;gt; //тоже самое, что и предыдущий, но параметры выводятся в столбик&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$?&amp;lt;/code&amp;gt; //выходное значение последней выполневшийся команды&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$SECONDS&amp;lt;/code&amp;gt; //время работы оболочки&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;${var:-value}&amp;lt;/code&amp;gt; //если значение параметра не установлено, то использовать это значение&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;${var:=value}&amp;lt;/code&amp;gt; //если значение параметра не установлено, то использовать это значение и параметру задать это значение&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;${var:?value}&amp;lt;/code&amp;gt; //если значение параметра не установлено, то вывести это значение и выйти из сценария с кодом ошибки&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;${var:+value}&amp;lt;/code&amp;gt; //использовать это значение, если значение параметра установлено, а иначе не использовать ничего&amp;lt;br&amp;gt;&lt;br /&gt;
//без двоеточия просто выводится значение; с двоетичием переменной назначается новое значение, если переменная существует но пустая&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;${#var}&amp;lt;/code&amp;gt; //длина переменной&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;${var#template}&amp;lt;/code&amp;gt; //удалить из значения переменной значение шаблона (начиная слева). удалить самый короткий фрагмент&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;${var##template}&amp;lt;/code&amp;gt; //удалить из значения переменной значение шаблона (начиная слева). удалить самый длинный фрагмент&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;${var%template}&amp;lt;/code&amp;gt; //удалить из значения переменной значение шаблона (начиная справа). удалить самый короткий фрагмент&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;${var%%template}&amp;lt;/code&amp;gt; //удалить из значения переменной значение шаблона (начиная справа). удалить самый длинный фрагмент&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;${var:0:1}&amp;lt;/code&amp;gt; //переменная : начальная позиция : кол-во извлекаемых символов перменной&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;${var/template}&amp;lt;/code&amp;gt; //переменная / удалить первое совпадение шаблона&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;${var/template/replace}&amp;lt;/code&amp;gt; //переменная / первое совпадение шаблона / замена шаблона&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;${var//template/replace}&amp;lt;/code&amp;gt; //переменная / каждое совпадение шаблона / замена шаблона&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;${var/#template/replace}&amp;lt;/code&amp;gt; //переменная / совпадение шаблона с началом значания переменной / замена шаблона&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;${var/%template/replace}&amp;lt;/code&amp;gt; //переменная / совпадение шаблона с концом значания переменной / замена шаблона&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;var=(0 1 2 3 4 5)&amp;lt;/code&amp;gt; //переменная-массив&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;echo ${var[n]}&amp;lt;/code&amp;gt; //использовать одно из значения массива&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;echo ${var[-n]}&amp;lt;/code&amp;gt; //номер массива с конца (справа)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;echo ${var[*]}; echo ${var[@]}&amp;lt;/code&amp;gt; //все элеметы массива&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;echo ${#var[*]}; echo ${#var[@]}&amp;lt;/code&amp;gt; //кол-во элементов массива&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;declare&amp;lt;/code&amp;gt; //объявление переменной&lt;br /&gt;
&lt;br /&gt;
=== Операторы выбора ===&lt;br /&gt;
&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
  &amp;quot;-i&amp;quot; ) finstall ;;&lt;br /&gt;
  &amp;quot;-r&amp;quot; ) fremove ;;&lt;br /&gt;
  * ) echo text&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
  1 | 2 ) echo &amp;quot;1-2&amp;quot;;;&lt;br /&gt;
  3 | 4 ) echo &amp;quot;3-4&amp;quot;;;&lt;br /&gt;
  * ) echo &amp;quot;error&amp;quot;&lt;br /&gt;
 esac&lt;br /&gt;
&lt;br /&gt;
 while getopts &amp;quot;:i:r&amp;quot; OPTNAME ; do&lt;br /&gt;
  case &amp;quot;$OPTNAME&amp;quot; in&lt;br /&gt;
   &amp;quot;-i&amp;quot; ) const_var_i=$OPTARG ;;&lt;br /&gt;
   &amp;quot;-r&amp;quot; ) const_var_r=&amp;quot;r&amp;quot; ;;&lt;br /&gt;
   * ) echo text&lt;br /&gt;
  esac&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
=== Операторы сравнения ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;n1 -eq n2&amp;lt;/code&amp;gt; : &amp;lt;code&amp;gt;n1 == n2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;n1 -ge n2&amp;lt;/code&amp;gt; : &amp;lt;code&amp;gt;n1 &amp;amp;gt;= n2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;n1 -gt n2&amp;lt;/code&amp;gt; : &amp;lt;code&amp;gt;n1 &amp;amp;gt; n2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;n1 -le n2&amp;lt;/code&amp;gt; : &amp;lt;code&amp;gt;n1 &amp;amp;lt;= n2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;n1 -lt n2&amp;lt;/code&amp;gt; : &amp;lt;code&amp;gt;n1 &amp;amp;lt; n2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;n1 -ne n2&amp;lt;/code&amp;gt; : &amp;lt;code&amp;gt;n1 != n2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Циклы ===&lt;br /&gt;
&lt;br /&gt;
 for (( i=0; i&amp;lt;=100; i++ )) {&lt;br /&gt;
   echo $i&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 for (( i=0; i&amp;lt;=100; i++ )) ; do&lt;br /&gt;
   echo $i&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
 while [ true ] ; do&lt;br /&gt;
   $command&lt;br /&gt;
 done&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>