Запуск сессии shell с перенаправлением стандартных потоков

Новую сессию shell можно запустить из командной строки также, как любую другую команду. Это делается с помощью команды sh.

Чтобы завершить сессию используется команда exit.

При запуске новой shell-сессии можно перенаправить поток вывода команды на поток ввода stdin новой сессии. При этом, когда перенаправленный поток будет завершён, сессия будет завершена. Например:

echo "ls -l /dev/fd/" | sh

Данная команда запускает новую сессию shell, в которой будет выполнена команда, выводящая на терминал информацию о псевдофайлах символьных ссылок на стандартные потоки ввода-вывода.

При этом можно перенаправить, например, вывод ошибок всех команд, выполняемых в новой сессии, в файл:

echo "ls -l /dev/fd/" | sh 2>errors.log