testes un shell incorporado que (obviamente) prueba alguna condición dada. Algunos proyectiles más viejos necesitan un comando especial. Así que también encontrarás un programa en /usr/bin/test.
[También es un programa para probar alguna condición. Este software también necesita un soporte de cierre y puede encontrarlo en /usr/bin/[.
[[…]]es una alternativa a testy [. Fue desarrollado para el shell Korn ( ksh). Pero también lo encuentra en las versiones Bash mayores de 2 y en el Z Shell. Los corchetes dobles tienen algunas características ingeniosas:
- El shell no divide palabras ni expande nombres de archivos.
- No necesitas citas.
- En lugar de
-a(AND) u -o(OR) puede usar &&o ||.
- El
=puede hacer mucho más.
((…))es equivalente a let. Entonces básicamente ((expression))es lo mismo que let "expression". Sin embargo, con letusted puede usar más de una expresión, pero las llaves dobles solo permiten una expresión.
$((…))(y también $[…]) hace algunos cálculos. Tu shell intenta calcular la expresión dentro de las llaves y reemplaza la expresión con el resultado. Así echo $((1+1))lleva a echo 2. Entonces tus conchas imprimen el número 2.
Cada vez que desee comparar dos números, debe usar la opción con un guión y dos letras ( -ge, -ltetc.). Si desea comparar cadenas, debe usar =o !=.
Su pregunta sobre escapar es bastante difícil de responder. Porque depende del software que uses además del shell. Es decir, grepy grep -Enecesita escapar diferente. Este es también el caso con sed, awky otros. Entonces, la mejor opción es echar un vistazo a la página de manual. Después de un tiempo te acostumbras y sabes cuándo usar el escape.