Script linux
#! /bin/bash
# Las líneas que empiezan por "#" son comentarios
# La primera línea o #! /bin/bash asegura que se interpreta como# un script de bash, aunque se ejecute desde otro shell.
echo "Este es el primer comando"
echo" "Tras 5 segundos verás un listado del directorio actual"
sleep 5s
ls --color
echo "Fin delejemplo"
Grábalo con un nombre cualquiera, por ejemplo "miprimerscript"
Ejecuta "chmod +x mimprimerscript"
Ejecuta "./miprimerscript" (el "./" significa "del directorio actual")
Como se puedecomprobar, "echo" sólo muestra mensajes en pantalla, "sleep" hace una pausa y "ls" nos muestra una lista de ficheros.
¿Qué se puede hacer, además de meter eso?
Manejar variables. Se introducen asÍ:VARIABLE=valor; export VARIABLE (en sh)
export VARIABLE=valor (en bash).
var1='expr'
var2="string"
Se escriben tras el nombre del script y se asignan consecutivamente a $1, $2, $3, ... Porejemplo, si ejecuto "nombre-del-script Hola" y dentro exista una orden "echo $1" el resultado será ordenador recibe una orden "echo Hola". Hay otras muchas variables predeterminadas. Importantes arecordar:
$# :num. de argumentos
$? :Valor del ultimo comando
$* :todos los arg de la shell
$$ :PID de la Shell (echo "para matarme, usa kill $$")
$ :opciones pasadas a la shell
$! :PID del ultimocomando &
$HOME
$PATH
$PS1 :prompt de 'espera'
$PS2: prompt de 'continua'
$IFS :Lista de char que separan palabras en los argumentos
Las variable de entorno se pueden ver así:
echo $ (sololos nombres de las variables
env (con los valores asignados)
set | less
Ordenes condicionales ( if test $2=$var1 then ... fi)
if [ "$1" = "hola" ]; then
ordenes
elif [ ]; thenordenes
else ordenes
fi
Menu (case)
case variable in
a) comandos ;;
b*) comandos ;;
*) comandos ;;
esac
ejecución en hora programadas
at hora fecha...
Regístrate para leer el documento completo.