2012-10-30 5 views
2

.bash_profile 파일 PATH 변수의 값을 업데이트하고 싶습니다. 또한 JAVA_PATHJRE_HOME 개의 변수를 추가하려고합니다. 그리고이 모든 것을 쉘 스크립트으로하고 싶습니다. 리눅스의 .bash_profile 파일을 덮어 씁니다.

나는 명령으로이 작업을 수행하는 방법에 대한 아무 생각이 없다, 그래서 나는 - 명령 고양이
cat >> ~/.bash_profile << _EOF_ 
#!/bin/bash/ 
if [ -f ~/.bashrc ]; then 
.~/.bashrc 
fi 

#User specific environment and startup programs 
JAVA_PATH=/usr/java/jdk1.6.0_35/bin 
PATH=$JAVA_PATH:$PATH:HOME/bin 
JRE_HOME=/usr/jdk1.6.0_35 

export PATH 
unset USERNAME 
_EOF_ 

은 무엇이 파일을 이렇게의 영향 될 것를 사용하여 전체 파일을 덮어 ? 어떻게 PATH 변수를 쉽게 업데이트하고 JAVA_PATHJRE_HOME 변수를이 파일에 삽입 할 수 있습니까? 같은 나오지도 또는 AWK ... 여기

당신의 .bash_profile에

sed 's/^\([[:space:]]*PATH=\)\(.*\)$/\1"\/bin:\/usr\/bin:~\/bin"/' ~/.bash_profile 

공지 사항을 PATH 값을 변경하는 방법에 대한 간단한 예를 들어 특별한 이스케이프 -

+1

에 데이터를 추가, 당신은 실제로 _appending_ 있습니다 덮어 쓰지 않습니다. – Arkku

+0

어떤 문제를 해결하려고합니까? Java는 업데이트 후 항상 위치를 변경합니까? 파일 시스템에서 현재 버전을 가리 키기 위해 심볼릭 링크를 사용하지 않으시겠습니까? 그러면 .bash_profile은 그대로 유지됩니다. –

답변

0

당신은 어떤 텍스트 조작 도구를 사용해야합니다

sed ... > /tmp/tmpbashprofile$$ 
mv /tmp/tmpbashprofile$$ ~/.bash_profile 
: 문자 (및/

그것은 당신이 당신의 이전 파일을 덮어 쓸 것인지, 당신은 같은 임시 파일을 통해 작업을 수행해야 새로운 설정을 추가3210

쉽습니다 :

echo "JAVA_PATH=/usr/java/jdk1.6.0_35/bin" >> ~/.bash_profile 

공지 이중 >> - 당신은`>`대신 재 지정에`>>`사용하기 때문에이 지정된 파일

+0

echo "JAVA_PATH =/usr/java/jdk1.6.0_35/bin">> ~/.bash_profile 이 마지막 행에 추가됩니다. 하지만 내보내기 전에 PATH을 설정 해제하는 방법 –

+0

sed의/^ \ (export PATH \) $/JAVA_PATH = \/usr \/java \ /jdk1.6.0_35 \/bin \ n \ 1과 같은 명령을 사용하십시오./'~/.bash_profile ... 내 대답과 같은 방식으로 사용하십시오 ... –

관련 문제