У меня есть сценарий, который начинается так
#!/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".