변수에 경로를 추가하거나 추가하기 위해 편의 기능 세트를 사용합니다. 함수는 "pathfuncs"라는 contrib 파일의 Bash 배포 tarball에 들어 있습니다.
- add_path는 PATH 변수의 끝에 항목을 추가합니다
- pre_path는 PATH 변수의 시작 부분에 항목을 추가합니다
- del_path는 어디에 있든지 PATH 변수에서 항목을 제거합니다.
변수를 두 번째 인수로 지정하면 PATH 대신 변수를 사용합니다.
편의상 다음과 같습니다.
# is $1 missing from $2 (or PATH) ?
no_path() {
eval "case :\$${2-PATH}: in *:$1:*) return 1;; *) return 0;; esac"
}
# if $1 exists and is not in path, append it
add_path () {
[ -d ${1:-.} ] && no_path $* && eval ${2:-PATH}="\$${2:-PATH}:$1"
}
# if $1 exists and is not in path, prepend it
pre_path () {
[ -d ${1:-.} ] && no_path $* && eval ${2:-PATH}="$1:\$${2:-PATH}"
}
# if $1 is in path, remove it
del_path () {
no_path $* || eval ${2:-PATH}=`eval echo :'$'${2:-PATH}: |
sed -e "s;:$1:;:;g" -e "s;^:;;" -e "s;:\$;;"`
}
이를 bash 시작 파일에 추가하면 다음과 같이 PATH에 추가 할 수 있습니다.
pre_path $HOME/bin
add_path /sbin
add_path /usr/sbin
또는 다른 변수를 지정하십시오.
pre_path $HOME/man MANPATH
pre_path $HOME/share/man MANPATH
add_path /usr/local/man MANPATH
add_path /usr/share/man MANPATH
pre_paths를 먼저두고 add_paths를 두 번째로하는 rc 파일에서이 방법을 사용합니다. 모든 경로 변경 사항을 한눈에 쉽게 이해할 수 있습니다. 또 다른 이점은 줄이 짧아 필요한 경우 줄에 후행 주석을 추가 할 수 있다는 것입니다.
이것들은 함수이기 때문에 add_path $(pwd)
현재 디렉토리를 경로에 추가하는 것과 같이 명령 행에서 대화식으로 사용할 수 있습니다 .
PATH=foo:$PATH
이 성장마다 시간을 유지하기 때문에 잘못된 것을source ~/.bashrc
, 심지어exec bash
도움이 (가)부터 할 수 없습니다$PATH
입니다export
.