fjavier5152
Usuario (Estados Unidos)

SHELL SCRIPT Un Shell Script o un Bash Script no es mas que un archivo de texto-plano que contiene comandos del shell. Pueden ser ejecutados escribiendo su nombre a una shell, o poniendo su nombre en otro script de shell. Para que sea ejecutable, un shell script tiene que cumplir algunas condiciones: • El archivo debe tener escrito en su primera linea, en este caso: #!/bin/bash • En caso de que no funcione, entonces ahi que encontrar el ejecutable del Bash shell y sustituir la localidad anterior(/bin/bash). Esta es una forma de encontrarla: $whereis bash • Luego de esto, el archivo debe de hacerse ejecutable, cambiando sus permiso. $chmod +x nombre_del_script • El nombre de un archivo Shell Script opcionalmente debe de estar identificado por el sufijo “.sh”. Esto solo ayuda a identificar el archivo. • Normalmente se ejecuta el shell script de la siguiente manera: $./nombre_del_script.sh • Otra forma de ejecutarlo es la siguiente: $sh nombre_del_script.sh Primer Script Los siguientes pasos lo guiaran a escribir y ejecutar un script simple: 1. Abra un editor de texto. En este caso usaremos VI: $vi nombre_script.sh 2. Escriba las siguientes lineas: #!/bin/bash echo “Mi primer script TARINGERO” 3. Guarde el archivo. En vi: Presione Esc, escriba “:wq” (sin las comillas), presione Enter 4. Desde la linea de comando, ejecute lo siguiete para darle permiso de ejecucion: $chmod +x nombre_script.sh 5. Para ejecutarlo, escriba lo siguiente: $./nombre_script.sh Script con Condicion Para condiciones, podemos usar lo que es if...then...else...fi. Teniendo en cuenta los pasos que estan en la primera pagina, hacer un script con las siguientes lineas: if [ -e . ] then echo “Se encontro el archivo.” else echo “No se encontro el archivo.” fi Este script, no hara mas que, verificar si se encuentra “ . ” en el directorio actual [ -e .], que viene siendo lo mismo que “ test -e . ”(sin las comillas). Puede sustituir “ . ” por otro nombre y asi verificar si este existe. Para mas informacion sobre como usar test o [ ] vease el manual del comando test: $man test Mas Scripts Las variables, en shell scripts, se pueden declarar de la siguiente manera: variable=10 Luego para usar la variable debe escribir $ y luego el nombre de la variable, para que el shell pueda identificar que es una variable. Ej: $variable Script 1: Teniendo en cuenta lo anterior, realizar un script con las siguientes lineas: var=10 while [ $var -gt 0 ] do echo $var let var-- sleep 1 done En estas lineas, lo que hicimos fue, declarar una variable y asignarle un valor, y decirle al shell que mientras( while ) la variable sea mayor que 0 ( [ $var -gt 0 ]), imprima la varibale, y le reste 1. Tambien le digimos que se pare cada segundo ( sleep 1 ). Script 2: Realizar un script con las siguientes lineas: nombre=“” echo “Escriba su nombre:” read nombre echo $nombre estudia en la FCLD. En las lineas anteriores, utilizamos “ read ” para leer una linea y guardamos este valor en la variable nombre ( read nombre ), luego lo imprimimos junto con “estudia en la FCLD. ”( echo $nombre estudia en la FCLD. ). Arreglos o matrices y for en Shell Script Los arreglos de shell son relativamente facil de construir. Ejemplo: arreglo=(Francisco Jose Henry Christian Anthonio) Con la linea anterior hicimos un arreglo con los nombres Francisco, Jose, Henry, Christian y Anthonio. Realizar un script con las siguientes lineas: nombres=(Jose Henry Christian Gerardo Nathaniel Francisco) nombre="" var=5 echo "Introducir nombre, para verificar si es miembro de la FCLD:" read nombre for n in {0..5} do if test "${nombres[n]}" = "$nombre" then let var++ else let var-- fi done if [ $var = 1 ] then echo $nombre es miembro de la FCLD. else echo $nombre no es un miembro de la FCLD. fi Este script no hara mas que verificar si el nombre introducido( read nombre ), se encuentra en el arreglo ( if test "${nombres[n]}" = "$nombre" ). El for no hace mas que contar del 0 al 5, esto nos ayuda a poder recorrer el arreglo. Mi primer Post, por favor dejen feedback! Gracias de antemano! No puse imagenes, porque creo que no es necesario para shell scripting... Dudas, aclaraciones y preguntas? Adelante! Pueden encontrar mas tutoriales y how-to's en http://www.codigolibre.org Fundacion Codigo Libre Dominicana