У меня есть сценарий, который начинается так
#!/bin/bash
VALKYRIE=~/myProjects/valkyrie
source $VALKYRIE/cluster.conf
но когда я запускаю его, он возвращается
line 2: ~/myProjects/valkyrie/cluster.conf: No such file or directory
но файл существует и при запуске source ~/myProjects/valkyrie/cluster.conf
он работает нормально. Есть идеи? Я установил VALKYRIE
переменную в другом месте, так что жесткий код в пути не вариант.
нет, это не помогает
—
Хой
Я думаю, что это связано с
—
Sparhawk
~
неправильным расширением. Когда я запускаю ваш скрипт с намеренно фальшивым путем, ошибка не говорит ~
, а расширяет путь. Можете ли вы попробовать заменить ~
в вашем скрипте абсолютный путь? Также попробуйте выполнить следующее в скрипте echo ~
.
Вы также можете попробовать
—
Sparhawk
$HOME
вместо ~
.
@ Khoi Это объясняет это.
—
Гейра
~/.pam_environment
не является сценарием оболочки, поэтому он не выполняет общих действий, которые вы ожидаете от оболочки, таких как расширение тильды и расширение параметров, поэтому не будет заменен ~
и $HOME
не будет заменен. Если ~/.profile
вместо этого переместить эту строку и добавить ее export
впереди, она должна работать.
source "${VALKYRIE}/cluster.conf"
.