Errores comunes en Bash
A modo de introducción muy breve, Bash es el intérprete de comandos o shell por defecto en la mayoría de las distribuciones basadas en Linux hoy en día.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)
Buscar
Entradas Recientes
- Posts
- Reemplazando la bateria del AirTag
- OpenExpo Europe décima edición, 18 de mayo: El Epicentro de la Innovación y la Transformación Digital
- Docker Init
- Kubernetes para profesionales
- Agenda: OpenExpo Europe 2022 llega el 30 de junio en formato presencial
- Libro 'Manual de la Resilencia', de Alejandro Corletti, toda una referencia para la gestión de la seguridad en nuestros sistemas
- Mujeres hackers en ElevenPaths Radio
- Creando certificados X.509 caducados
- Generador de imágenes Docker para infosec