Herramientas de usuario

Herramientas del sitio


informatica:sistemas_operativos:linux:bash_scripting

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
informatica:sistemas_operativos:linux:bash_scripting [2020/11/26 15:49] – creado tempwininformatica:sistemas_operativos:linux:bash_scripting [2022/08/09 11:02] (actual) – [Recursos] tempwin
Línea 23: Línea 23:
 </WRAP> </WRAP>
  
 +===== Parámetros posicionales =====
 +
 +Los argumentos que pasamos a un script se procesan en el mismo orden en que se envían. Se empiezan a nombrar desde el uno y se pueden acceder desde dentro del script usando ''$1'', ''$2'' y así sucesivamente
 +. El parámetro posicional hace referencia a la representación del argumento usando su posición.
 +
 +Por ejemplo, si tenemos el siguiente script:
 +
 +<code bash>
 +echo "Primero: $1";
 +echo "Segundo: $2";
 +echo "Tercero: $3";
 +</code>
 +
 +Y lo ejecutamos de la siguiente manera:
 +
 +<code bash>
 +miscript.sh uno dos tres
 +</code>
 +
 +Obtendremos:
 +
 +<code>
 +Primero: uno
 +Segundo: dos
 +Tercero: tres
 +</code>
 +
 +==== Número de argumentos desconocido ====
 +
 +Si el script puede recibir cualquier número de argumentos, podemos acceder a ellos a través de la variable ''$@'' que es un array que contendrá todos los argumentos.
 +
 +<code bash>
 +i=1;
 +for numero in "$@" 
 +do
 +    echo "Número - $i: $numero";
 +    i=$((i + 1));
 +done
 +</code>
 +
 +Ejemplo de ejecución:
 +
 +<code bash>
 +miscript.sh uno dos tres cuatro
 +</code>
 +
 +Salida:
 +
 +<code>
 +Número - 1: uno
 +Número - 2: dos
 +Número - 3: tres
 +Número - 4: cuatro
 +</code>
 +===== Ejemplos =====
 +
 +==== Recorrer fechas ====
 +
 +Recorrer todas las fechas entre dos fechas:
 +
 +<code bash>
 +fecha_inicio=2020-01-01
 +fecha_fin=2021-01-01
 +
 +# Todas las fechas durante un año:
 +while [ "$fecha_inicio" != "$fecha_fin" ]; do 
 +  echo $fecha_inicio
 +  fecha_inicio=$(date -I -d "$fecha_inicio + 1 day")
 +done
 +</code>
 +
 +===== Recursos =====
 +
 +  * [[https://google.github.io/styleguide/shellguide.html|Código de estilo de shell scripts de Google]]
 +  * [[https://www.shellcheck.net/|ShellCheck: revisión de scripts de bash]]
 +  * [[https://mywiki.wooledge.org/BashPitfalls|Errores comunes creando scripts de bash]]
 +  * [[https://mywiki.wooledge.org/BashFAQ|Bash FAQ]]
 +  * [[https://robertmuth.blogspot.com/2012/08/better-bash-scripting-in-15-minutes.html|Better Bash Scripting in 15 Minutes]]
 +  * [[https://www.davidpashley.com/articles/writing-robust-shell-scripts/|Writing Robust Bash Shell Scripts]]
 +  * https://github.com/awesome-lists/awesome-bash|Awesome Bash]]
informatica/sistemas_operativos/linux/bash_scripting.1606402165.txt.gz · Última modificación: por tempwin