2017-02-11 1 views
0

bashrc에 JAVA_HOME 경로를 추가하는 스크립트를 작성하려고합니다. 그러나 나는 잘못된 결과를 계속 얻고있다. 우분투 스크립트를 사용하여 bashrc에 JAVA_HOME 경로를 추가하지 않았습니다.

echo "export JAVA_HOME=/usr/lib/jvm/java-7-oracle" >> ~/.bashrc 
echo "export PATH=$PATH:$JAVA_HOME/bin" >> ~/.bashrc 

내가 bashrc에

export JAVA_HOME=/usr/lib/jvm/java-7-oracle 
export PATH=/home/ubuntu/apache-maven-3.3.9/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr$ 

원하는 출력이 경로에 대한 export PATH=$PATH:$JAVA_HOME/bin이다에서 아래의 출력을 얻을 : 아래의 스크립트를 사용

.

이 스크립트는 java 경로를 추가하기위한 것이 아니라 hadoop, spark 및 hbase 경로를 추가하지 않았습니다. 나는 그것들 각각에 대해 같은 출력을 얻는다. 어떤 도움을 주시면 감사하겠습니다.

+0

'>> ~/.bashrc' 부분이 제거 된 경우 명령의 출력은 무엇입니까? – sorontar

답변

1

$ PATH 및 $ JAVA_HOME이 (가) .bashrc에 추가되기 전에 확장 중입니다.

이스케이프 처리해야합니다. 예 :

echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc 

echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> ~/.bashrc 

또는

는 그러나 "무차별"편집 쉘의 "RC"파일의 종류에 정말 조심해야합니다. 그것은 위험 할 수 있습니다.

더 좋은 아이디어는 손으로 변경을하거나

0

echo는 단지 명령 텍스트를 출력하고, echo를 없애고 실제로 명령을 실행합니다.

0

문제는 큰 따옴표를 사용하는 것입니다 자바 기반 응용 프로그램을 실행 각각의 래퍼 스크립트로 설정을 넣어 하나하는 것입니다. 이들은 변수를 평가합니다 (이 경우 아직 설정되지 않은 $JAVA_HOME). 대신 작은 따옴표를 사용하면 평가 된 대신 리터럴을 출력합니다. 예 :

echo 'export JAVA_HOME=/usr/lib/jvm/java-7-oracle' >> ~/.bashrc echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc

자세한 내용은 Difference between single and double quotes in Bash를 참조하십시오.

관련 문제