В большинстве оболочек - 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 чтобы увидеть все переменные окружения, а также проверить документацию оболочки на наличие нескольких необычных.