Всегда ли переменная среды PWD
определяется в Linux независимо от командной оболочки?
Нет, и я не понимаю, почему это может иметь место, потому что *Переменная 1006 * автоматически обновляется (при инициализации оболочки и) после использования команды cd
, которая является в точности встроенной оболочкой .
Соответствующую документацию о PWD
можно найти, например, в:
Ниже приведен пример сеанса Bash, иллюстрирующий связь между PWD
и cd
:
/$ echo "$SHELL"
/bin/bash
/$ echo "$PWD"
/
/$ cd usr/bin/
/usr/bin$ echo "$PWD"
/usr/bin
Другими словами, будет ли всегда выполняться команда типа ls $PWD
?
На самом деле синтаксис $PWD
соответствует расширению параметра оболочки , поэтому ls $PWD
не может быть правильно оценен без оболочки.
Замечание в годssing: настоятельно рекомендуется заключить в кавычки переменные оболочки, записав таким образом ls "$PWD"
в этом случае, чтобы избежать проблем, если переменная содержит пробелы или другие специальные символы.