Можна використовувати змінні оточення PWD і HOME: $PWD поточний робочий каталог, в той час як $HOME домашній каталог поточного користувача. Ви можете передувати виконувані операції у вашому сценарії:
if [ "$PWD" != "$HOME" ]; then exit; fi
Можна додатково додати код помилки exit команда, у випадку, якщо викликає оболонка хоче перевірити успіх або невдачу сценарію.
Іншою корисною змінною є OLDPWD: $OLDPWD - це попередній каталог перед останньою зміною каталогу. Ви можете скористатися цим, щоб сценарій запускався з будь-якого місця, оточуючи скрипт:
cd "$HOME"
. . . . . .
cd "$OLDPWD"
Це передбачає, що в скрипті немає інших змін у каталозі; якщо ні, використовуйте INITPWD="$PWD" спочатку і повернутися до $INITPWD. Насправді, в більшості випадків скрипт буде виконуватися в дочірній оболонці, тому перехід до початкового каталогу буде непотрібним, оскільки первісний cd не вплине на батьківську оболонку.
$0у вашому сценарії ..