CURSO DESDE 0 DE GNU/LINUX. Versión 2.
Entrega 42. Shell Script (I).
¿Para qué?
Los “ficheros de guiones” o shell script, y para los que vengan del mundo de ms-dos y windows el equivalente a los procesos por lotes (los famosos .bat), pero como siempre en el mundo de los Unix mucho más potente, aparte de usarlos para ejecutar comandos, como todos los ejemplos vistos en este curso, podemos usarlos para crear nuestro propios comandos y programas, ya que tienen su lenguaje de programación propio.
Pero si yo no quiero programar en shell script, ¿para qué me sirve esto?
Saber leer los shell script o al menos conocer la forma de interpretar qué hacen nos va a ser de mucha ayuda a la hora de interpretar multitud de ficheros de configuración de nuestros sistemas, cosa muy importante a la hora de resolver los pequeños problemas con los que podemos encontrarnos, y nos van a servir para automatizar tareas.
Con lo cual, tanto si te gusta como si no, si usas GNU/Linux o cualquier otro tipo de Unix, es una buena idea tener una guía y unas nociones básicas, “por si acaso”.
Creación y ejecución.
Nosotros vamos a usar Bourne Shell, o sea el 'bash' de siempre, tanto 'bash' como 'sh', que es lo mismo:
matados2k@geosanidad:~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2007-01-02 12:40 /bin/sh -> bash
matados2k@geosanidad:~$
Como en el mundo de Unix existen más intérpretes de comandos, existen otras sintaxis distintas para los shell script, como por ejemplo 'ksh' o 'csh', pero no los vamos a ver, de hecho yo personalmente no me he encontrado nunca con ninguno de ellos.
Para crearlos nos va a servir el editor de texto que más rabia te dé, y la extensión no es importante, aunque suele usarse '.sh' y es buena idea usar esta extensión para diferenciarlos.
Para ejecutarlos tenemos dos opciones, o bien le damos permiso de ejecución y los ejecutamos como cualquier otro comando, o bien los ejecutamos a través de una llamada al intérprete de comandos:
matados2k@geosanidad:~/curso$ echo echo hola mundo > holamundo1.sh
matados2k@geosanidad:~/curso$ echo echo hola mundo > holamundo2.sh
matados2k@geosanidad:~/curso$ chmod +x holamundo1.sh
matados2k@geosanidad:~/curso$ ./holamundo1.sh
hola mundo
matados2k@geosanidad:~/curso$ sh holamundo2.sh
hola mundo
matados2k@geosanidad:~/curso$ bash holamundo2.sh
hola mundo
matados2k@geosanidad:~/curso$
A gusto del consumidor, aunque yo personalmente para usarlos como comandos prefiero darles permisos, y para cosas como instaladores prefiero que se ejecuten mediante la llamada a un intérprete, tú decides.