Все это зависит от того, сколько работы Вы хотите вставить его. Я думаю, что LFS является забавой, но Studio SuSE легок. Те, что упомянутый мозг опасности предварительно создается.
Вам просто нужно избежать доллара $
.:
echo \$PATH
$PATH
или окружайте его в одиночных кадинатах:
echo '$PATH'
$PATH
Это убедится, что слово не интерпретируется оболочкой Отказ
$
в синтаксисе большинства оболочек является очень специальным символом. Если мы посмотрим только на оболочки, подобные Bourne, они используются для введения:
$ #
, $ var
, $ {foo: -bar}
$ (logname)
(также $ {logname;}
в некоторых оболочках, чтобы избежать подоболочки) $ ( (1 + 1))
(также $ [1 + 1]
в некоторых оболочках). $ '\ n'
или $ "локализованная строка"
. За исключением последнего случая, эти расширения / замены по-прежнему выполняются в двойных кавычках (и внутри $ "..."
в bash
или ksh93
)
Чтобы этот $
не обрабатывался особым образом, вам нужно указать его в кавычках:
echo '$ PATH'
или echo '$' PATH
. Тот, который вы обычно хотите использовать, поскольку он экранирует все символы (кроме себя) в большинстве оболочек. echo \ $ PATH
. Также внутри двойных кавычек: echo "\ $ PATH"
echo $ '$ PATH'
, echo $ '\ 44PATH'
(при условии, что кодировка совместима с ASCII), echo $ '\ u0024'
Или убедитесь, что это не часть допустимой формы раскрытия, как указано выше:
echo "$" PATH
echo $ "" PATH
, echo $ "PATH"
ksh93
и bash
поддерживает форму кавычек $ "..."
. echo $ `` PATH
. Нет причин, по которым вы хотели бы использовать это один, за исключением того, чтобы показать, что это возможно. echo "$ {$ + $} PATH"
и другие запутанные ... Или вы можете вывести этот $
другим способом:
echo
: echo '\ 044PATH'
(для некоторых других echo
требуется echo -e '\ 044PATH'
) printf '\ 44PATH \ n '
cat << \ EOF $ PATH EOF
Обратите внимание на то, что эти обратные косые черты должны быть заключены в кавычки, поскольку они, очевидно, являются специальными для оболочки.
Надеюсь, к настоящему времени должно быть ясно, что, хотя есть много способов сделать это, нет веских причин, по которым вы хотели бы использовать что-то еще, кроме echo '$ PATH'
здесь.