В командной строке bash я установил переменную myPath = / home / user / dir. Я создал скрипт, в котором я поместил echo $ myPath, но он не работает. Это ничего не повторяет. Что я могу сделать, чтобы получить доступ к переменной myPath в сценарии. Если я напишу echo $ myPath в команде, это сработает, но не в сценарии.
как вы присвоили переменную? это должно было быть:
$ export myPath="/home/user/dir"
затем внутри программы оболочки вроде:
#!/usr/bin/env bash echo $myPath
вы получите желаемый результат.
Попробуйте
export myPath=/home/user/dir
Вы также можете сделать это, чтобы установить переменную myPath только для myscript
myPath="whatever" ./myscript
Подробнее о допустимом сложном синтаксисе для переменных среды см .: http://www.pixelbeat.org/docs/env.html
Вы должны объявить присвоение переменной с помощью «export» следующим образом:
export myPath="/home/user/dir"
Это заставит оболочку включать переменную в среду запускаемых ею подпроцессов. По умолчанию объявленные вами переменные (без «экспорта») не передаются в подпроцесс . Вот почему вы изначально не получили ожидаемый результат.