Estructuras de control y bucles

comparaciones de cadenas alfanuméricas (Test Operators, Binary Comparison)

comparaciones de valores numéricos (Test Operators, Binary Comparison)

si se pone entre doble paréntesis:

comprobación atributos de fichero (Test Operators, Files)

concatenación de comparaciones / comprobaciones

/vía: http://www.linux-es.org/node/238

estructuras

if/else

https://phoenixnap.com/kb/bash-if-statement

if condicion
then
  comandos
elif condicion
  comandos
else
  comandos
fi
example
DIRECTORIO="/tmp/test"
COMANDO="/bin/mkdir $DIRECTORIO"
 
if $COMANDO then
   echo "OK"
else
   echo "KO"
fi

if (ternary operator)

example
a=$([ "$b" == 5 ] && echo "$c" || echo "$d")
# a = b==5 ? c : d
example
[ $b == 5 ] && { a=$c; true; } || a=$d
example
VARIABLE=`[ test ] && echo VALUE_A || echo VALUE_B`

for

for nombre [in lista]
do
   comandos
done
example
LISTA="etc var home"
for directorio in $LISTA
do
  ls $directorio
done
example
for f in *; do echo $f; done

while

while condición
do
   comandos
done
example
NUM=0
while [ $NUM -gt 10]; do
   let NUM=$NUM+1
done

while

example
while true; do sleep 10; ls -la; done

until

until condición
do
   comandos
done
example
NUM=0
until [ $NUM -gt 10]; do
   let NUM=$NUM+1
done

case

case expresion in
    case1)
       comandos
    case2)
       comandos
    ...
esac
example
for NUM in 0 1 2 3
do
  case $NUM in
    0) echo "cero";
    1) echo "uno";
    2) echo "dos";
    3) echo "tres";
  esac
done