Оболонка запускається при вході, але він також почав програми , як make
, або при виконанні сценарію оболонки, або при введенні :sh
в vi
або при створенні нового вікна терміналу.
Спочатку оболонка читалася ~/.profile
під час входу в систему чи запуску su
. Цей сценарій буде таким, як оголосити, чи є у вас нова електронна пошта, налаштувати стирання та вбивство символів, а також встановити та експортувати змінні TERM і PATH. Коли було запущено практично в будь-якому іншому контексті, оболонка не читала ~/.profile
, тому що робити більшість цих речей було б зайвим. Ви повинні були експортувати будь-які важливі змінні оболонки до нової оболонки.
Шлях оболонки , чи знав читати в ~/.profile
тому , щоб перевірити , є чи перший символ argv[0]
ака $0
був '-'
.
Починаючи з того csh
, були представлені псевдоніми. Псевдоніми не експортували в навколишнє середовище. csh
був розроблений для читання у двох різних сценаріях ініціалізації. ~/.login
було прочитано лише тоді, коли користувач увійшов у систему, і підказкою для цього було, якщо argv[0]
почалося з '-'
. ~/.cshrc
читалася щоразу, коли оболонка запускалася. Загалом, один розміщений псевдоніми, ~/.cshrc
а все інше в ~/.login
. csh
також підтримується ~/.logout
, що в більшості випадків просто очищає екран і запускається fortune
.
Інші оболонки прийняли ці самі особливості. ksh
читатиме ~/.kshrc
, bash
буде читати ~/.bashrc
, і ті були , де б розмістити визначення псевдонімів.
Отже, якщо коротко розповісти, додаток, що породжує оболонку, повинен вирішити, чи повинна це бути "оболонка для входу", і в цьому випадку це є '-'
на початку, або звичайна оболонка. У більшості випадків оболонка, яка буде інтерактивною, запускається як оболонка для входу, а оболонка призначена просто для виконання деяких команд, як аргументів, так і зі скрипту, а вихід - звичайна оболонка.
Але все залежить від примхи програми, яка запускає оболонку.