Запуск сессии shell с перенаправлением стандартных потоков
Новую сессию shell можно запустить из командной строки также, как любую другую команду. Это делается с помощью команды sh.
Чтобы завершить сессию используется команда exit.
При запуске новой shell-сессии можно перенаправить поток вывода команды на поток ввода stdin новой сессии. При этом, когда перенаправленный поток будет завершён, сессия будет завершена. Например:
echo "ls -l /dev/fd/" | sh
Данная команда запускает новую сессию shell, в которой будет выполнена команда, выводящая на терминал информацию о псевдофайлах символьных ссылок на стандартные потоки ввода-вывода.
При этом можно перенаправить, например, вывод ошибок всех команд, выполняемых в новой сессии, в файл:
echo "ls -l /dev/fd/" | sh 2>errors.log
- Стандартные поток ввода (stdin) и стандартные потоки вывода (stdout) и ошибок (stderr).
- Код завершения выполнения программы.
- Перенаправление вывода команды в файл.
- Перенаправление ввода команды из файла.
- Перенаправление вывода команды на ввод другой команды.
- Перенаправление вывода в никуда.
- Именованные каналы.
- Перенаправление вывода в несколько файлов.
- Перенаправление вывода на другой терминал.
- Вывод содержимого файла.
- Ввод из командной строки в файл.
- Выполнение команд из файла.
- Вывод управляющих символов и символов по кодам.
- Запуск сессии shell с перенаправлением стандартных потоков.
- Замена символов при выводе.
- Построчное объединение файлов.
- Перенос строки в терминале.