Разница между 1.114 и текущей версией ОболочкаShell.
@@ -1,6 +1,4 @@
-- Оболочка shell
-
--- Кратко о программируемой оболочке
+= Оболочка shell
 
 Программируемая оболочка интерпретирует команду и выполняет её. Оболочка shell предназначена для манипуляции с:
 	1 данными — строчно-ориентированная обработка;
@@ -30,7 +28,7 @@
 когда расходы на сами операции
 (ввод-вывод, вычисления) существенно превышают расходы на создание новых процессов.
 
---- Среда запуска команд
+-- Среда запуска команд
 
 Запускаемые программы наследуют окружение оболочки, а именно:
 
@@ -50,7 +48,7 @@
 где каждая программа отвечает за свою отдельную чётко определённую задачу.
 Программируя в оболочке пользователь получает новые инструменты «склеивая» и комбинируя существующий компактный набор типовых компонентов-программ.
 
--- Интерактивный и неинтерактивный режимы
+- Интерактивный и неинтерактивный режимы
 
 В интерактивном режиме оболочка сигнализирует
 о готовности принимать команды приглашением — символом доллара ($).
@@ -100,9 +98,9 @@
  world
  $
 
--- Запуск команд
+- Запуск команд
 
---- Простые команды
+-- Простые команды
 
 Оболочка выполняет преобразования с командами,
 разбивая каждую входную строку на последовательность символов,
@@ -125,7 +123,7 @@
 
 Вторая команда выполняется сразу после первой, приглашения не выводятся.
 
---- Асинхронный запуск
+-- Асинхронный запуск
 
 Команды в оболочке запускаются последовательно.
 Перед тем как запустить следующую команду оболочка дожидается завершения предыдущей.
@@ -140,7 +138,7 @@
 распаковать большой архив.
 
  $ '''tar xf archive.tar &'''
- \[1]+ 31408
+ [1]+ 31408
  $
 
 Оболочка немедленно готова к запуску следующей команды.
@@ -148,7 +146,7 @@
 Такие команды называются ''заданиями'' (''jobs'').
 
  $ '''jobs'''
- \[1]+  Running		  tar xf archive.tar
+ [1]+  Running		  tar xf archive.tar
  $
 
 Если добавить опцию '''-p''',
@@ -166,15 +164,15 @@
 Пользователь командами оболочки может перевести в фон (''bg'') или интерактивный режим (''fg'') любую команду из списка заданий.
 
  $ '''jobs'''
- \[1]+ Running		  tar xf archive.tar
+ [1]+ Running		  tar xf archive.tar
  $ '''fg 1'''
  tar xf archive.tar
  <''Ctrl+Z''>
- \[1]+ Stopped		  tar xf archive.tar
+ [1]+ Stopped		  tar xf archive.tar
  $
 
 
--- Переменные
+- Переменные
 
 Переменная — это именованый параметр, который хранит значение.
 Для раскрытия переменной в оболочке используется символ доллара ($),
@@ -213,7 +211,7 @@
  orange
  $
 
---- Подробнее о переменных
+-- Подробнее о переменных
 
 Если рядом с раскрываемой переменной слитно без пробелов расположены другие символы, то раскрывать переменную безопаснее заключив её имя в фигурные скобки ({...}). В таком случае оболочка может определить где начинается и заканчивается её имя.
 
@@ -224,7 +222,7 @@
 
 	``${parameter꞉-''word''}``  :  Использовать значение по умолчанию. Если переменная не установлена или пустая (null), то оболочка раскрывает ''word'' и подставляет его значение вместо переменной.
 	``${parameter꞉=''word''}``  :  Присвоить значение по умолчанию. Если переменная не установлена или пустая (null), то оболочка раскрывает ''word'' и присваивает его значение переменной. Результатом раскрытия всегда будет переменная.
-	``${parameter꞉?'''\['''''word''''']'''}``  :  Напечатать ошибку и завершиться если переменная не установлена или пустая. Если переменная не установлена или пустая, то оболочка раскрывает ''word'' и печатает его на стандартный вывод ошибок а затем завершается (exit) с ненулевым кодом; иначе подставляется значение переменной. Здесь пара квадратных скобок «\[…]» обозначает, что ''word'' может отсутствовать. Интерактивная оболочка не завершается.
+	``${parameter꞉?'''['''''word''''']'''}``  :  Напечатать ошибку и завершиться если переменная не установлена или пустая. Если переменная не установлена или пустая, то оболочка раскрывает ''word'' и печатает его на стандартный вывод ошибок а затем завершается (exit) с ненулевым кодом; иначе подставляется значение переменной. Здесь пара квадратных скобок «[…]» обозначает, что ''word'' может отсутствовать. Интерактивная оболочка не завершается.
 	``${parameter꞉+''word''}``  :  Использовать альтернативное значение. Если переменная не установлена или пустая, то подставляется пустая переменная; в противном случае оболочка раскрывает ''word'' и подставляет его.
 
 Если в раскрытии переменной двоеточие (:) используется, то в таком случае оболочка проверяет её и на существование и на пустое значение (null); если же двоеточие опустить, то проверяется только существование.
@@ -264,7 +262,7 @@
     path
     $
 
---- Подстановка команд
+-- Подстановка команд
 
 Команду заключённую в 
 
@@ -289,7 +287,7 @@
 
  $ cp notes.log notes_20150315.log
 
---- Арифметические подстановки
+-- Арифметические подстановки
 
 Выражение заключённое в
 
@@ -302,12 +300,12 @@
 Константы в выражении допускаются как десятичные так и 8- и 16-ричные.
 
   i=0
-  while \[ $i -lt 20 ]; do
+  while [ $i -lt 20 ]; do
     printf '%d\n' $i
     i=$((i+1))
   done
 
--- Экранирование через "..." и '...'
+- Экранирование через "..." и '...'
 
 Разбиение строк на слова — полезная функция оболочки.
 Оболочка даёт возможность предотвратить разбиение,
@@ -370,7 +368,7 @@
  It’s not my fault!
  $
 
--- Перенаправление ввода-вывода
+- Перенаправление ввода-вывода
 
 Оболочка организует для каждой запускаемой программы три открытых файла с каждым из которых связан свой номер дескриптора:
 
@@ -427,17 +425,17 @@
 
  $ grep '^root:' /etc/passwd >/dev/null
 
--- Дублирование дескрипторов ввода-вывода
+- Дублирование дескрипторов ввода-вывода
 
 Дескрипторы открытых файлов могут дублироваться или закрываться средствами оболочки. Команда дублирования дескриптора файла ввода в общем виде выглядит так:
 
- \[''n'']<&''word''
+ [''n'']<&''word''
 
 где ''n'' — номер дескриптора (может отсутствовать, тогда подразумевается 0) куда будет дублирован  дескриптор для ввода, указанный в ''word'' явно или как выражение, раскрываемое оболочкой (может быть переменной или подстановкой). Символ амперсанда (&) позволяет отличить номер дескриптора от файла с таким же именем. Если вместо номера дескриптора при раскрытии ''word'' получен «-», то тогда открытый файл, связанный с дескриптором ''n'', закрывается.
 
 Точно так работает дублирование дескриптора для ввода.
 
- \[''n'']<&''word''
+ [''n'']<&''word''
 
 Идиоматическим приёмом в оболочке является полное подавление вывода команды путём перенаправления стандартного вывода (дескриптор 1) в ''/dev/null'' с последующим дублированием в дескриптор стандартного вывода ошибок (дескриптор 2).
 
@@ -455,7 +453,7 @@
 
 Очевидно, что закрывать любые из трёх стандартных дескрипторов не следует за исключением редких случаев, когда пользователь действительно понимает зачем он это делает.
 
--- Программные каналы
+- Программные каналы
 
 Одно из главных достижений Unix — программные каналы.
 Они позволяют подать вывод одной программы на вход другой без временных файлов.
@@ -486,7 +484,7 @@
 
 Здесь в дескриптор стандартного вывода ошибок дублируется дескриптор программного канала, соединённый с ``wc -l``. Таким образом и стандартный вывод и стандартный вывод ошибок из ``ls -1`` попадёт в конвеер и будет передан следующей команде.
 
--- Группировка команд
+- Группировка команд
 
 Команды в оболочке могут быть сгруппированы двумя способами:
 
@@ -526,7 +524,7 @@
 то она не затрагивает окружения основной оболочки,
 иначе пришлось бы сохранять текущий каталог до запуска копирования и восстанавливать его после.
 
--- Шаблоны имён файлов
+- Шаблоны имён файлов
 
 Символы «?», «*» и «\[» имеют специальное назначение.
 Когда оболочка встречает такие символы в аргументе команды (вне кавычек),
@@ -536,15 +534,15 @@
 Для отмены действия символа перед ним ставят обратный слэш (\).
 
  	``ls /etc/*.conf``  :  Вывести имена файлов из /etc, заканчивающиеся на «.conf».
- 	``ls *.\[ch]``  :  Вывести имена файлов, заканчивающиеся на «.c» и «.h».
+ 	``ls *.[ch]``  :  Вывести имена файлов, заканчивающиеся на «.c» и «.h».
  	``ls j?nk``  :  Вывести имена файлов с любым символом вместо ?.
  	``cat j\?nk``  :  Вывести на терминал файл с именем j?nk.
- 	``ls /var/run/\[!abc]*.pid``  :  Вывести имена файлов из /var/run, начинающиеся на любой символ, исключая символы abc, и заканчивающиеся на «.pid».
+ 	``ls /var/run/[!abc]*.pid``  :  Вывести имена файлов из /var/run, начинающиеся на любой символ, исключая символы abc, и заканчивающиеся на «.pid».
 
 Если файлы с именами, подходящими под шаблон, не существуют, то оболочка подставляет
 сам шаблон буквально.
 
---- Замечания по раскрытию шаблонов
+-- Замечания по раскрытию шаблонов
 
 Символ слэш (/) не может быть частью шаблона при раскрытии путей,
 потому что является ''разделителем пути'' (''path separator'').
@@ -564,12 +562,12 @@
 тогда точку нужно указывать явно.
 В шаблон «.*» при раскрытии путей всегда попадут текущий и родительский каталоги.
 
--- Литература
+- Литература
 	1 Kernighan, B. W. Software tools in Pascal / B. W. Kernighan, P. J. Plauger. — Addison-Wesley Longman Publishing Co., Inc., 1981.
 	1 Bourne, S. R. An Introduction to the UNIX Shell / S. R. Bourne. — Bell Laboratories. Computing Science, 1978.
 	1 Peek, J. Unix Power Tools / Jerry Peek, Shelley Powers, Tim O'Reilly, Mike Loukides. — 3rd ed. — O'Reilly Media, October 2002.
 	1 Seebach, P. Beginning Portable Shell Scripting: From Novice to Professional / Peter Seebach. — Apress, 2008.
-	1 The Open Group Base Specifications Issue 7 \[Электронный ресурс] : Shell Command Language / The IEEE and The Open Group. — IEEE Std 1003.1, 2013 Edition. — 2013. — Режим доступа: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html, свободный.
+	1 The Open Group Base Specifications Issue 7 [Электронный ресурс] : Shell Command Language / The IEEE and The Open Group. — IEEE Std 1003.1, 2013 Edition. — 2013. — Режим доступа: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html, свободный.
 
 
 # КатегорияЯзыкиПрограммирования | КатегорияОболочки