-w test no OS X dá comando não encontrado erro

0

Estou escrevendo um script que estou testando no OS X, embora ele seja executado em um ambiente Linux padrão e com um erro estranho.

Eu tenho testes como este no meu script:

if [ ! -w $BP ]; then
  echo "'$1' not writable"
  exit 1
fi

O que parece bastante sensato para mim e funciona bem no Linux, mas ao tentar testar no OS X recebo a seguinte mensagem de erro:

startSvr.sh: line 135: [: missing ']' startSvr.sh: line 135: -w: command not found

Então, este é um caso do OS X não suportando o teste -w ou há algum outro motivo para que isso não esteja funcionando para mim? por exemplo. meio ambiente

    
por RobV 06.04.2012 / 18:14

1 resposta

1

É possível que você não tenha um espaço após o nome do arquivo, ou seja, a linha é realmente

if [ ! -w $BP]; then

porque isso geraria o erro que você vê.

Atualizado após o nome do diretório indicado pelo OP poder incluir espaços

Sugira mudar seu código para

if [ ! -w "$BP" ]; then
    
por 06.04.2012 / 18:30

Tags