Muitas vezes vejo scripts com uso deopçõescomo em if [ -f some_file ]
verifica se some_file
é um arquivo. Eu tenho uma compreensão muito vagabandeiras, mas alguém pode me dar uma boa explicação? Outros gostam -p
, -s
não tenho ideia do que são e não consegui encontrar bons recursos sobre eles, pois uma única pesquisa no Google não produz nenhum bom resultado.
Responder1
Acredite ou não, [
é na verdade outro nome para test
comando.
Você pode conferir a man
página:
man test
test
também é um shell embutido na maioria dos shells (e tem precedência sobre o externo):
% type -a \[
[ is a shell builtin
[ is /usr/bin/[
% type -a test
test is a shell builtin
test is /usr/bin/test
Em bash
você também pode ver help test
.
Responder2
A melhor solução é o manual do bash, sim, o simples man bash
.
Para encontrar a entrada exata no manual, execute este comando:
LESS=+/'^CONDITIONAL EXPRESSIONS' man bash
Ao trabalhar dentro de um shell bash, isso também ajuda:
help test