Я знаю, что $SHELL является переменной среды, которая относится к текущей оболочке по умолчанию. echo $SHELL
печатает путь к stdout.
Здесь использование его для хранения открытого окна терминала: Как запустить скрипт, не закрывая терминал?
Что делает $SHELL, когда он вводится как некоторая команда?
Это расширено, и его содержание интерпретируется как команда для выполнения. Например, если это содержит /bin/bash
, это будет работать /bin/bash
, т.е. это запустит новую оболочку удара.
В конкретном примере это препятствует тому, чтобы терминал был закрыт, когда оболочка работает в интерактивном режиме, т.е. ожидает пользователя для ввода в командах.