Curso Bash Scripting
Curso Bash Scripting
Agenda
Fundamentos de GNU/Linux (Revisin) Qu es un shell? Ambiente en BASH Sintxis de BASH Ejemplos de scripts Ejercicios
Qu es un Shell?
Intrprete de comando de Unix / Linux Proporciona una interfz para manipular el sistema operativo sh, bash, zsh, otras. Cambia la sintaxis y el entorno
Ambiente BASH
* -> equivale a cualquier cadena de texto en un nombre de archivo ? -> equivale a cualquier caracter en un nombre de archivo[ ] -> evala una condicin lgica [! ] -> evala una condicin lgica negativa| -> utiliza la salida del comando izquierdo, como entrada del comando derecho
Ambiente BASH
\ -> Protege el siguiente metacarcter para que la shell no lo interprete& -> Ejecuta
un proceso en segundo plano $ -> Extrae el contenido de una variable> -> redirige la salida estndar, creando un archivo nuevo, borrando el existente>> -> redirige la salida estndar, creando un archivo nuevo o aadiendo al existente
Ambiente BASH
2> -> redirige la salida de error, creando un archivo nuevo, borrando el existente2>> -> redirige la salida de error, creando un archivo nuevo o aadiendo al existente< -> Redirige la entrada estndar ( ) -> Agrupacin de comandos
Ambiente BASH
&& -> "Y" lgico entre rdenes
|| -> O lgico entre rdenes
$n -> Argumento n
Sintaxis BASH
Comentarios con # Separador de instrucciones: cambio linea o ; echo: imprime en pantalla #/bin/bash : identificador de archivo
Case
case "$variable" in abc) echo "$variable = abc" ;;
If
if [ $# -eq 0 ] then echo "$0 : Debe ingresar argumentos" exit 1 fi
For
for i in `ls *.txt`do cat $idone for (( i = 0 ; i <= 5; i++ )) do echo "Hola $i veces" done echo "Archivo $i"
ChessBoard
for (( i = 1; i <= 9; i++ )) do for (( j = 1 ; j <= 9; j++ )) do tot=`expr $i + $j` tmp=`expr $tot % 2` if [ $tmp -eq 0 ]; then echo -e -n "\033[47m " ; else echo -e -n "\033[40m " ; fi done echo -e -n "\033[40m" #### set back background colour to black echo "" #### print the new line ###done
While
while [ condition ] do command1 command2 command3 .. .... done
Funciones
function demo() { echo "All Arguments to function demo(): $*" echo "First argument $1" echo "Second argument $2" echo "Third argument $3" return }
Read
read <var> echo $<var>
Dialog
dialog --title {title} --backtitle {backtitle} {Box options} where Box options can be any one of following --yesno {text} {height} {width} --msgbox {text} {height} {width} --infobox {text} {height} {width} --inputbox {text} {height} {width} [{init}] --textbox {file} {height} {width} --menu {text} {height} {width} {menu} {height} {tag1} item1}...
dialog --title "Inputbox - To take input from you" -backtitle "Linux Shell Script Tutorial" --inputbox "Enter your name please" 8 60 2>/tmp/input.$$ sel=$? na=`cat /tmp/input.$$` case $sel in 0) echo "Hello $na" ;; 1) echo "Cancel is Press" ;; 255) echo "[ESCAPE] key pressed" ;; esac rm -f /tmp/input.$$
Ejercicios
1.Modificar el valor del PS1 en el .bash_profile (texto) 2.Modificar el valor del PS1 en el .bash_profile (grafico) 3.Aadir un alias en el .bash_profile 4.Hacer un script que baje de internet una imagen, y la ponga de fondo de pantalla 5.Que baje varias imagenes y las rote en un intervalo de tiempo 6.Hacer un menu para ejecutar los demas scripts
Referencias