La sintaxis de bash a veces es arcana y/o arcáica, lo cual tarde o temprano lleva a despistes.
Aún así, es compacto y resulta muy ágil para automatizar iterativamente tareas de todo tipo.
Algunas de las virtudes que lo hacen cómodo y ágil:
- Operaciones empotradas en variables: por ejemplo, ${nombre_fichero//.wav/.mp3}
- Programación “orientada a filtros” (tuberías): grep patron fichero | wc
- Ejecutar y guardar salida en variable: output=$(comando)
- Documentos empotrados: cat <
- Uso “transparente” de variables: echo “Texto ${variable}”; sec_to_date=$(date -d@${seconds} +’%Y-%m-%d’)
- Comandos: cp, mkdir, date, find, grep, diff, du, df, ps, stat, sed, ssh, wget
- “Metaprogramación”: eval “${comando} ${parametro}”
- Traceado trivial: bash -x script
- Tests simples para ficheros: [ -x fichero ]
- Redirección: >>
- “Expansión”: * {a,b,c} [0-9]
- Importar: .
Algunas virtudes se convierten en vulnerabilidades, por ejemplo la expansión.
Alternativas para esas virtudes, en Python: