PATH에 $HOME/mydir이 포함되어 있는지 확인하고, 그렇지 않은 경우 추가하세요(모두 스크립트에 있음)

PATH에 $HOME/mydir이 포함되어 있는지 확인하고, 그렇지 않은 경우 추가하세요(모두 스크립트에 있음)

중복 가능성:
소스의 $PATH에서 중복 항목 유지

내 스크립트 중 일부는 에 있습니다 $HOME/mydir. 불행히도 해당 디렉토리가 PATH.

$HOME/mydir인지 확인하는 작은 스크립트를 만들고 싶습니다 PATH. 그렇지 않은 경우 PATH이를 사용하고 업데이트해야 합니다 EXPORTED.

$HOME/mydir내 질문은: 그것이 의 일부인지 확인하기 위해 어떤 명령을 사용할 수 있습니까 PATH? 감사해요.

해결책

기록을 위해 다음을 수행했습니다.

echo "Before: $PATH"

echo $PATH | grep -q "$HOME/scripts"

if [ $? -eq 0 ]; then
  PATH=$PATH:$HOME/scripts
  export PATH
else
  export PATH
fi

echo ""
echo "After: $PATH"

답변1

난 쓸수있다

case ":$PATH:" in
  *:$HOME/mydir:*) echo it is in the path;;
  *) echo not there ;;
esac

원하는 경로가 $PATH의 첫 번째 또는 마지막 경로인 경우 패턴 일치를 보장하기 위해 ":$PATH:"를 작성했습니다.

답변2

비슷한 작업을 수행하기 위해 간단한 bash 스크립트를 작성할 수 있습니다.

echo $PATH | grep -q  "/your/search/path"

그런 다음 $?가 0이 아닌지 확인하여 일치하지 않음을 나타냅니다. 그렇다면 경로를 추가하세요.

export PATH=$PATH:/your/search/path

관련 정보