Добавление переменной среды, к сожалению, что я сделал? - PullRequest
0 голосов
/ 14 июля 2011

Это может показаться довольно смешным, но почему это произошло? В первой строке я добавлял существующую локальную пользовательскую переменную, а во второй строке я получаю подсказку продолжения (она выглядит так же с другим цветом в моем терминале). Почему продолжение подсказки? Как правильно выйти из этого выражения? И как бы вы правильно добавили переменную с выводом команды? pwd >> $ joe не работает.

rcharette station-2-87 ~ $ joe=$joe\`pwd`
rcharette station-2-87 ~ $ 
rcharette station-2-87 ~ $ ;
rcharette station-2-87 ~ $ 
rcharette station-2-87 ~ $ 
rcharette station-2-87 ~ $ ^[
-bash: :s^[: substitution failed
rcharette station-2-87 ~ $ 
rcharette station-2-87 ~ $ exit
rcharette station-2-87 ~ $ ,
rcharette station-2-87 ~ $ 
rcharette station-2-87 ~ $ 
rcharette station-2-87 ~ $ exit
rcharette station-2-87 ~ $ ls
rcharette station-2-87 ~ $ 

Ответы [ 3 ]

3 голосов
/ 14 июля 2011

Это потому, что у вас непревзойденный обратный удар.Вы избегаете первого, так что это второй, который фактически начинает строку с обратным символом.

1 голос
/ 14 июля 2011

escape-символ (обратный слеш) заставляет следующий символ интерпретироваться как литерал. Таким образом, \ before 'в первой строке заставляет' трактоваться как литерал, а не как открытая кавычка. Следовательно, второе 'на самом деле является открытой кавычкой, и все, что после этого рассматривается как буквальная строка.

Почему вы добавили обратную косую черту? Просто удалите его, и оно должно работать.

Barry

1 голос
/ 14 июля 2011
joe=$joe\`pwd`

будет выглядеть как поиск переменной с буквальным именем joe\'pwd, поскольку вы избежали первого обратного удара.Второй обратный удар начинается с команды subshell, но больше нет текста, поэтому вы получаете приглашение продолжения.Если вы пытаетесь вставить литерал \ в новую переменную, вам придется его экранировать:

joe=$joe\\`pwd`

, что даст вам что-то вроде

joe=hello/home/users/etc...

Если вывы пытаетесь построить путь динамически, вместо этого используйте / ... пути unix не используют обратную косую черту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...