Доступ к переменной в скрипте bash

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

4 ответа

Решение

Пытаться

export myPath=/home/user/dir

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

$ 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"

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

Другие вопросы по тегам