Оболонка запускається при вході, але він також почав програми , як 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, і ті були , де б розмістити визначення псевдонімів.
Отже, якщо коротко розповісти, додаток, що породжує оболонку, повинен вирішити, чи повинна це бути "оболонка для входу", і в цьому випадку це є '-'на початку, або звичайна оболонка. У більшості випадків оболонка, яка буде інтерактивною, запускається як оболонка для входу, а оболонка призначена просто для виконання деяких команд, як аргументів, так і зі скрипту, а вихід - звичайна оболонка.
Але все залежить від примхи програми, яка запускає оболонку.