2009-05-02 8 views
9

bash 명령 줄에서 변수 myPath =/home/user/dir을 설정합니다. echo $ myPath를 넣은 스크립트를 만들었지 만 제대로 작동하지 않는 것 같습니다. 그것은 아무것도 울부 짖는다. 스크립트에서 myPath 변수에 액세스하려면 어떻게해야합니까? 명령에 echo $ myPath를 쓰면 작동하지만 스크립트에서는 작동하지 않습니다.bash 스크립트에서 변수에 액세스

답변

8

는 변수를 지정 않은 방법

export myPath=/home/user/dir 
+1

bash 프로필에서 export var도 사용하십시오. 스크립트에서이 변수에 액세스하게하려는 경우. 예 : JAVA_HOME – LukeSolar

+0

오해의 소지가 있습니다. 'export'는 현재 쉘에 아무런 영향을주지 않습니다. 현재 셸에서 시작된 하위 프로세스에서 변수의 값을 볼 수 있어야 할 때 유용합니다. – tripleee

+0

@tripleee 실제로, 그리고 뭔가를 놓치지 않는 한 그것은 바로 질문에 대한 질문입니다. 서브 프로세스 (쉘 스크립트를 실행 중)에서 변수에 액세스하는 방법입니다. –

18

를 시도? 그것은 있었어야 :

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

다음 내부와 같은 쉘 프로그램 : 당신이 원하는 결과를 얻을 수

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

.

+1

따옴표로 묶은 다른 문자열에서 사용해야하는 경우 echo "Path is $ {myPath}"를 입력 할 수도 있습니다. –

5

또한 단지 환경 ​​변수에 대한 인정 까다로운 구문의 자세한 내용은로 myscripf

myPath="whatever" ./myscript 

에 대한 MYPATH 변수를 설정하기 위해이 작업을 수행 할 수는 참조 : http://www.pixelbeat.org/docs/env.html

1

당신은 당신의 변수 할당을 선언해야 " export "를 다음과 같이 입력하십시오 :

export myPath="/home/user/dir" 

이렇게하면 쉘이 변수를 enviro에 포함시킵니다 실행되는 서브 프로세스의 이름. 기본적으로 선언 한 변수는 "내보내기"없이 서브 프로세스으로 전달되지 않습니다. 그래서 처음에는 예상했던 결과를 얻지 못했습니다.

관련 문제