Задумываясь о том, что yes
может быть команда, я наткнулся на этот комментарий , и попытался выполнить
yes $(yes yes)
Из того, что я понимаю, это должно просто напечатать бесконечную последовательность yes
, но вместо этого он ничего не выводит и через несколько секунд вылетает мой графический терминал. (Если я выполню его на tty1, через некоторое время появится приглашение для входа.)
Что здесь происходит?
yes
никогда не возвращается.xargs
:yes yes | xargs -P 0 yes
(или без-P 0
для бесконечности одного процесса)Ответы:
Уже должно быть достаточно для запуска
$(...)
Запускает внутреннюю команду , пока она не будет закончена , и захватывает всю свою продукцию. - Теперь, когда онyes
работает долго и генерирует много выходных данных, bash в конечном итоге исчерпает память и вылетает.источник
Чтобы увидеть сообщение об ошибке, которая закрывает вашу оболочку, вам нужно запустить вложенную оболочку.
источник