중복 가능성:
소스의 $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