가 나는 다음과 달성하고자하는 : 나는 배쉬 프롬프트에서 "CD 생산"을 실행하면, 나는 디렉토리로 이동해야하고 메시지가 표시되어야합니다디스플레이 메시지가
"당신은 생산에 ", 그래서 사용자는 경고를받습니다.
가 나는 다음과 달성하고자하는 : 나는 배쉬 프롬프트에서 "CD 생산"을 실행하면, 나는 디렉토리로 이동해야하고 메시지가 표시되어야합니다디스플레이 메시지가
"당신은 생산에 ", 그래서 사용자는 경고를받습니다.
셸 컨텍스트 (예 : .bashrc)에서 다음을 실행하면됩니다.
xcd() {
if [[ "$1" == "production" ]] ; then
echo Warning, you are in production.
fi
builtin cd $1
}
alias cd=xcd
이 그 기능에 cd
명령 별명 다음 함수를 생성한다. 함수 자체가 경고를 제공 한 다음 실제 cd
을 호출합니다. (/production
참으로 위험 지역 인 경우)
더 나은 솔루션은, 그러나, 당신이 요구 한 솔루션은 "cd /production/x"
에 대한 "cd $HOME ; cd production"
및 위음성 당신에게 가양 성을 제공하기 때문에, 실제 경로를 감지 할 수 있습니다. 당신이 절대 경로로 최상위 위험 디렉토리를 구성 할 수 있습니다
#!/bin/bash
export xcd_warn="/home/pax /tmp"
xcd() {
builtin cd $1
export xcd_path=$(pwd)
for i in ${xcd_warn} ; do
echo ${xcd_path}/ | grep "^${i}/"
if [[ $? -eq 0 ]] ; then
echo Warning, you are in ${i}.
fi
done
}
alias cd=xcd
:
내가 좋아하는 일을 할 것입니다.
그렇게하지 마십시오. :)
정말로 알고 싶은 것은 사용자가 방금 cd 명령을 통해 'production'디렉토리에 있는지 여부입니다. 당신이 정말로 알고 싶은 것은 프로덕션 데이터를 수정하는 방법과 거기에있는 방법 (cd, pushd, popd, 이미 해당 디렉토리의 부모 프로세스에서 쉘을 여는 것)과는 무관합니다.
프로덕션 디렉토리에있을 때 쉘이 불쾌한 경고를하는 것이 훨씬 더 중요합니다.
function update_prompt() {
if [[ $PWD =~ /production(/|$) ]] ; then
PS1="\[email protected]\h \w [WARNING: PRODUCTION] $"
else
PS1="\[email protected]\h \w $"
fi
}
PROMPT_COMMAND=update_prompt
더욱 화려한 색으로 문자열을 자유롭게 바꾸십시오.
비슷한 질문이 있습니다. http://unix.stackexchange.com/questions/18532/show-message-when-cd-into-specific-directory –