Він служить насамперед для того, щоб переконатися, що скринька інструментів POSIX доступна як усередині, так і зовні оболонки (див. Обґрунтування POSIX для їх використання ).
Бо cd
це не надзвичайно корисно, але зауважте, що cd
змінює каталоги, але має й інші побічні ефекти: він повертає статус виходу, який допомагає визначити, чи можете ви chdir()
до цього каталогу чи ні, і видає корисне повідомлення про помилку, пояснюючи, чому ви не можете chdir()
коли ти не можеш.
Приклад:
dirs_i_am_able_to_cd_into=$(find . -type d -exec cd {} \; -print)
Ще одним потенційним побічним ефектом є автоматичне створення каталогу.
У кількох системах більшість зовнішніх команд для стандартних вбудованих оболонок реалізовані як символьне посилання на той самий сценарій, що і:
#! /bin/sh -
"${0##*/}" "$@"
Тобто запустіть оболонку і запустіть вбудований в ній.
Деякі інші системи (наприклад, GNU) мають утиліти як справжні виконувані команди, що може призвести до плутанини, коли поведінка відрізняється від оболонки, вбудованої у версію.
/usr/bin/cd
, лише вбудована оболонка.