Esta shell además provee un gran potencial para administradores de sistemas y programadores a la hora de procesar tareas administrativas y nos ofrece un lenguaje de script muy completo con el que podemos gestionar dichas tareas de forma programática.
El problema de este lenguaje es que aunque el paradigma de programación sea estructural, es, al menos para mi, es un poco raro y por lo tanto muy fácil de cometer errores.
Para evitar esto o ayudarnos con dicha tarea, en esta página podemos ver los errores más comunes que se cometen a la hora de escribir un script en Bash. A través de un total de 39 (en este momento), el autor nos expone el error, da una pequeña explicación del mismo y como solucionarlo.
Aquí os copio el índice de la página:
- for i in $(ls *.mp3)
- cp $file $target
- Filenames with leading dashes
- [ $foo = "bar" ]
- cd $(dirname "$f")
- [ "$foo" = bar && "$bar" = foo ]
- [[ $foo > 7 ]]
- grep foo bar | while read -r; do ((count++)); done
- if [grep foo myfile]
- if [bar="$foo"]
- if [ [ a = b ] && [ c = d ] ]
- read $foo
- cat file | sed s/foo/bar/ > file
- echo $foo
- $foo=bar
- foo = bar
- echo <<EOF
- su -c 'some command'
- cd /foo; bar
- [ bar == "$foo" ]
- for i in {1..10}; do ./something &; done
- cmd1 && cmd2 || cmd3
- echo "Hello World!"
- for arg in $*
- function foo()
- echo "~"
- local varname=$(command)
- sed 's/$foo/good bye/'
- tr [A-Z] [a-z]
- ps ax | grep gedit
- printf "$foo"
- for i in {1..$n}
- if [[ $foo = $bar ]] (depending on intent)
- if [[ $foo =~ 'some RE' ]]
- [ -n $foo ] or [ -z $foo ]
- [[ -e "$broken_symlink" ]] returns 1 even though $broken_symlink exists
- ed file <<<"g/d\{0,3\}/s//e/g" fails
- expr sub-string fails for "match"
- On UTF-8 and Byte-Order Marks (BOM)
