Следующий синтаксис `<( CMD )` выполнит `CMD`, поместит вывод во временный файл и заменит `<()` именем этого файла. Это полезно, когда команды ожидают, что значения будут переданы через файл, а не `STDIN`. Например, `diff <(ls foo) <(ls bar)` покажет различия между файлами в каталогах foo и bar.
Следующий синтаксис `<( CMD )` выполнит `CMD`, поместит вывод во временный файл и заменит `<()` именем этого файла. Это полезно, когда команды ожидают, что значения будут переданы через файл, а не `STDIN`. Например, `diff <(ls foo) <(ls bar)` покажет различия между файлами в каталогах foo и bar.
`*`Что произойдёт в данном случае?
```
(echo red; echo green 1>&2) | echo blue
```
Ответ в [1-2].
### 1.
### 1.
Кроме результатов в `STDOUT` и ошибок в `STDERR` cценарии возвращают код возврата. Код возврата или статус выхода — это то, как скрипты/команды должны сообщать о том, как прошло выполнение. Значение `0` обычно означает, что все прошло нормально; все, что отличается от `0`, означает, что произошла ошибка.
Кроме результатов в `STDOUT` и ошибок в `STDERR` cценарии возвращают код возврата. Код возврата или статус выхода — это то, как скрипты/команды должны сообщать о том, как прошло выполнение. Значение `0` обычно означает, что все прошло нормально; все, что отличается от `0`, означает, что произошла ошибка.
Чтобы назначить переменные в bash, используйте синтаксис `foo=bar`. Чтобы получить доступ к значению переменной запишите знак `$` перед её именем `$foo`. Обратите внимание, что `foo = bar` не будет работать, так как интерпретируется как вызов программы `foo`с аргументами `=` и `bar`. Как правило, в сценариях оболочки символ пробела выполняет разделение аргументов. Поначалу такое поведение может сбивать с толку, поэтому всегда проверяйте его.
Чтобы назначить переменные в bash, используйте синтаксис `foo=bar`. Чтобы получить доступ к значению переменной запишите знак `$` перед её именем `$foo`. Обратите внимание, что `foo = bar` не будет работать, так как интерпретируется как вызов программы `foo`с аргументами `=` и `bar`. Как правило, в сценариях оболочки символ пробела выполняет разделение аргументов. Поначалу такое поведение может сбивать с толку, поэтому всегда проверяйте его.
@ -242,7 +241,7 @@ echo "Everything went according to plan"
- Не стесняйтесь адаптировать код из существующих скриптов для своих нужд. Но не занимайтесь программированием по принципу "копируй, вставляй и молись", если вы не понимаете кода. Потратьте время на то, чтобы разобраться в нем. Это время никогда не бывает потрачено впустую.
- Не стесняйтесь адаптировать код из существующих скриптов для своих нужд. Но не занимайтесь программированием по принципу "копируй, вставляй и молись", если вы не понимаете кода. Потратьте время на то, чтобы разобраться в нем. Это время никогда не бывает потрачено впустую.
- В`bash` используйте опцию `-x` для вывода команд на экран перед их выполнением и `-n` для проверки команд на синтаксис без их выполнения.
- В`bash` используйте опцию `-x` для вывода команд на экран перед их выполнением и `-n` для проверки команд на синтаксис без их выполнения.
- Помните, что в Python вы находитесь в режиме отладки, если явно не отключите егос помощью аргумента `-0` в командной строке. Перед выводом диагностического вывода можно проверить специальную переменную `__debug__`.
- Помните, что в Python вы находитесь в режиме отладки, если явно не отключите егос помощью аргумента `-0` в командной строке. Перед выводом диагностического вывода можно проверить специальную переменную `__debug__`.
- Сообщения об ошибка должны идти в STDERR, а не STDOUT.
- Сообщения об ошибка должны идти в `STDERR`, а не `STDOUT`.
- В сообщениях об ошибка указываете какая функция или операция не выполнилась.
- В сообщениях об ошибка указываете какая функция или операция не выполнилась.
- Если произошла ошибка в системном вызове включайте в сообщение об ошибке `perror` строку.
- Если произошла ошибка в системном вызове включайте в сообщение об ошибке `perror` строку.
- Используйте имена, набранные заглавными буквами, для указания на переменные среды или переменные, считываемые из глобальной конфигурации. В именах локальных переменных используйте строчные буквы, с разделением слов нижним подчёркиванием `_`.
- Используйте имена, набранные заглавными буквами, для указания на переменные среды или переменные, считываемые из глобальной конфигурации. В именах локальных переменных используйте строчные буквы, с разделением слов нижним подчёркиванием `_`.