В большинстве оболочек - sh, bash, csh ..., - синтаксис $NAME
обозначает переменные (аналогично %NAME%
в Windows cmd.exe); обычно переменные среды, но некоторые из них являются внутренними для оболочки.
(Но учтите, что это соглашение иногда распространяется и на письменные инструкции, в которых вы должны мысленно подставлять значения при чтении текста.)
Аналогично, некоторые языки программирования - PHP, Perl - также используют $name
для имен переменных.
В вашем примере $PWD
- это автоматический envvar, который раскрывает путь к текущему каталогу:
> cd /etc/modprobe.d
> echo $PWD
/etc/modprobe.d
Таким образом, чтобы сохранить файл «в $ PWD», вам не нужно делать ничего особенного; попытка открыть пустое имя файла без пути уже использует текущий каталог.
Если бы вам дали другую пользовательскую переменную, вам пришлось бы использовать getenv("NAME")
чтобы получить ее значение в программе на C++.
Вы можете использовать env
чтобы увидеть все переменные окружения, а также проверить документацию оболочки на наличие нескольких необычных.