teste lógico pasta [RESOLVIDO]

1. teste lógico pasta [RESOLVIDO]

Lucas Noetzold
noitso

(usa Debian)

Enviado em 16/07/2015 - 22:13h

duas questões

1 - Como funciona o teste lógico dos colchetes?
tentei o seguinte em um script
[  ~/pastinhamarota  ] || mkdir ~/pastinhamarota 

depois de horas tentado descobrir o que estava errado em uma tripa de script, descobri que esta linha retorna true sempre, estando a pasta lá ou não, então me veio a dúvida de porque este teste não funciona e qual a correta utilização/propósito dos colchetes?



2 - de quais formas (simples) posso testar a existência de um diretório?
conheço apenas test -d

Abraço aos amigos do VOL


  


2. MELHOR RESPOSTA

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 16/07/2015 - 22:19h

Olá

faltou o parâmetro " -d " para o teste.
[ -d /caminho/absoluto/da/pasta ] 


Os colchetes substitue o comando test. Por exemplo:

Ao invés de fazer assim:
if test -d /caminho/absoluto/da/pasta 
then...

vc pode fazer assim:
if [ -d /caminho/absoluto/da/pasta ]
then...


roda um:
man test |grep - 


abs
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---

3. Re: teste lógico pasta [RESOLVIDO]

Lucas Noetzold
noitso

(usa Debian)

Enviado em 16/07/2015 - 22:25h

tem que ser /root/pastinha, então ~/pastinha não pode ser usado?


4. Re: teste lógico pasta [RESOLVIDO]

Wellingthon Dias Queiroz - @tonyhts
tonyhts

(usa Arch Linux)

Enviado em 16/07/2015 - 22:27h

noitso escreveu:

tem que ser /root/pastinha, então ~/pastinha não pode ser usado?


Pode sim!
Só deve tomar cuidado ao usar caminhos relativos, pois nem sempre o ambiente será igual.
No caso da home ok.


---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---


5. Re: teste lógico pasta [RESOLVIDO]

Lucas Noetzold
noitso

(usa Debian)

Enviado em 17/07/2015 - 08:23h


Sim este script vou rodar apenas como root, serve pra provisionar umas maquinas automaticamente. Valeu pela explicação!