Доступ к переменной в скрипте bash - PullRequest
13 голосов
/ 03 мая 2009

В командной строке bash я установил переменную myPath = / home / user / dir. Я создал скрипт, в котором я поместил echo $ myPath, но он не работает. Это ничего не повторяет. Что я могу сделать, чтобы получить доступ к переменной myPath в сценарии. Если я напишу echo $ myPath в команде, это сработает, но не в сценарии.

Ответы [ 4 ]

22 голосов
/ 03 мая 2009

как вы присвоили переменную? это должно было быть:

$ export myPath="/home/user/dir"

затем внутри программы оболочки вроде:

#!/usr/bin/env bash
echo $myPath

вы получите желаемый результат.

9 голосов
/ 03 мая 2009

Попробуйте

export myPath=/home/user/dir
6 голосов
/ 03 мая 2009

Вы также можете сделать это, чтобы установить переменную myPath только для myscript

myPath="whatever" ./myscript

Подробнее о допустимом сложном синтаксисе для переменных среды см .: http://www.pixelbeat.org/docs/env.html

2 голосов
/ 03 мая 2009

Вы должны объявить присвоение переменной с помощью «export» следующим образом:

export myPath="/home/user/dir"

Это заставит оболочку включать переменную в среду запускаемых ею подпроцессов. По умолчанию объявленные вами переменные (без «экспорта») не передаются в подпроцесс . Вот почему вы изначально не получили ожидаемый результат.

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