Почему я получаю «Нет такого файла или каталога» для каталога, который существует? - PullRequest
1 голос
/ 17 мая 2019

Я запускаю скрипт с именем setenv.sh, который устанавливает переменные среды. Одна из строк:

config.dir=/Users/arianna/work/next/conf

После его запуска появляется сообщение об ошибке: config.dir=/Users/arianna/work/next/conf: No such file or directory

Я запутался, потому что этот каталог существует. Я могу скопировать и вставить и CD в него.

Я озадачен здесь. Что не так?

1 Ответ

1 голос
/ 18 мая 2019

Использование . в вашей переменной - вот что вызывает проблемы; в bash он используется как переменная окружения и / или допустим только в определенных оболочках, которые могут распознавать его как обычную переменную. Я бы рекомендовал использовать подчеркивание, если вам абсолютно не нужно использовать точку.

config_dir=/Users/arianna/work/next/conf

Если вы хотите использовать его как переменную окружения или получить его, тогда вы можете сделать:

config_dir=$( env 'config.dir=/Users/arianna/work/next/conf' \
              awk 'BEGIN {print ENVIRON["config.dir"]}' )

echo "$config_dir"

Объяснение

Ссылка на переменную bash, имя которой содержит точку

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