A menudo veo scripts con el uso deopcionescomo en if [ -f some_file ]
comprueba si some_file
es un archivo. Tengo una comprensión muy vaga debanderas, pero ¿alguien puede darme una buena explicación? A otros les gusta -p
, -s
no tengo idea de qué son y no pude encontrar buenos recursos sobre ellos, ya que una sola búsqueda en Google no arroja ningún buen resultado.
Respuesta1
Lo creas o no, [
en realidad es otro nombre para test
mandar.
Puedes consultar la man
página:
man test
test
También es un shell integrado en la mayoría de los shells (y tiene prioridad sobre el externo):
% type -a \[
[ is a shell builtin
[ is /usr/bin/[
% type -a test
test is a shell builtin
test is /usr/bin/test
En bash
también puedes ver help test
.
Respuesta2
La mejor solución es el manual de bash, sí el sencillo man bash
.
Para encontrar la entrada exacta en el manual, ejecute este comando:
LESS=+/'^CONDITIONAL EXPRESSIONS' man bash
Cuando se trabaja dentro de un shell bash, esto también ayuda:
help test