Почему «echo $ SHELL» всегда возвращает / bin / tcsh - PullRequest
0 голосов
/ 30 мая 2018

У меня есть следующий простой сценарий оболочки:

[test.sh]

#! /bin/bash
echo $SHELL

Почему я всегда получаю консольный вывод /bin/tsch во всехследующие сценарии?

1) В терминале выполните следующее:

% ./test.sh

2) В терминале выполните следующее:

% bash
$ ./test.sh

3) В терминале выполните следующее:

% bash ./test.sh

Как вы, вероятно, можете сказать из курсора %, терминал запускается с tcsh по умолчанию.Меня смущает, почему #! /bin/bash в скрипте и bash в командной строке не влияют на значение $SHELL.

1 Ответ

0 голосов
/ 31 мая 2018

См. Переменные Bash в руководстве:

SHELL

Полный путь к оболочке сохраняется в этой переменной среды. Если он не установлен при запуске оболочки , Bash присваивает ему полный путь к файлу входа текущего пользователя.

Мой акцент.

Если вы хотите указать путь к текущему исполняемому файлу bash, используйте $BASH.См. Ссылку выше на документы.

...