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