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