Verificando se o PATH contém $ HOME / mydir e adicionando-o se não (todos em um script) [duplicado]

6

Eu não sou especialista em scripts Unix. Alguns dos meus scripts estão localizados em $HOME/mydir . Infelizmente, eles não são acessíveis de outro lugar se esse diretório não fizer parte de PATH .

Eu gostaria de criar um script pequeno verificando se $HOME/mydir faz parte de PATH . Se não for, PATH deve ser atualizado com ele e EXPORTED .

Minha pergunta é: qual comando posso usar para verificar se $HOME/mydir faz parte de PATH ? Obrigado.

SOLUÇÃO

Para os registros, implementei o seguinte:

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"
    
por Jérôme Verstrynge 18.02.2012 / 13:24

2 respostas

3

Você pode escrever um script simples para fazer algo assim.

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

Em seguida, verifique se $? não é 0, ou seja, não corresponde, e se assim for, adicione o caminho

export PATH=$PATH:/your/search/path
    
por 18.02.2012 / 14:48
14

Eu escreveria

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

Eu escrevo ": $ PATH:" para garantir que o padrão corresponda se o caminho desejado for o primeiro ou o último no seu $ PATH.

    
por 18.02.2012 / 18:35