Professional Documents
Culture Documents
Qu es un script?
Un script es archivo ejecutable con una serie de ordenes que sern ejecutadas secuencialmente por un programa intrprete, que en este caso ser la shell o interprete de comandos entre el usuario y el S.O
Variables
Una variable es una asignacin en memoria donde podemos guardar y reescribir cualquier tipo de dato. Hay variables definidas por el programador y otras que, por ser de uso muy comn, ya estn definidas en el sistema. Para retornar su valor necesitamos anteponer el signo $. No usar caracteres especiales(,*, etc) Case sensitive.
Escribiendo un script
Las variables se definen as: Syntax: variable name=value #!/bin/sh # Ejemplo de uso de variables. VAR_1=Lina VAR_2=3 echo Mi nombre es $VAR_1 y tengo $VAR_2 aos"
Escribiendo un script
No es necesario declarar las variables del sitema, tambin llamadas variables de entorno. Algunas de ellas son: BASH, PWD, USER, UID #!/bin/sh # Ejemplo de uso de variables. clear echo Hola $USER , tu UID es $UID echo El calendario de este mes es cal exit 0
Uso de comillas
Comillas dobles: se usan para cadena de texto Comilla inclinada: permiten ejecutar el contenido y que su resultado sea devuelto. Comilla simple: permite ingnorar lo que est dentro, depende del contexto puede ejecutar comandos
#!/bin/sh # Ejemplo de uso de comillas Clear Yo=Lina Mckoll Hernndez echo Feliz dia a todos, les desea $Yo echo Hoy es ";date Fecha=date Echo Hoy es $Fecha Echo El contenido de esta carpeta es ls
Aritmetica
Utilizar el comado expr
#!/bin/sh # Ejemplo de uso de variables. expr 1 + 3 #suma expr 2 1 # resta expr 10 / 2 #division expr 20 % 3 #residuo expr 10 \* 3 #multiplicacion
Expresiones condicionales
Sentencia condicional if se utiliza para ejecutar unas u otras instrucciones, dependiendo de una condicin.
Ejercicios: Scripts bsicos para bash
Expresiones condicionales - IF
Ejercicios: Scripts bsicos para bash #!/bin/sh # Script con condicional if # echo Ingrese un numero read num echo Usted es $USER y ha ingresado el nmero $num If [ $num eq 10 ] then echo usted ingreso el numero 10 echo usted tiene permiso para continuar else echo usted ingreso un numero diferente de 10 echo usted no tiene permiso para continuar fi
-gt
-le -ge -eq
>
<= >= ==
-ne
!=
!=
< > -n s1
not equal
less then greater then string s1 is not empty
-z s1
string s1 is empty
#!/bin/bash #Declare string S1 S1="Bash" #Declare string S2 S2="Scripting" if [ $S1 = $S2 ] then echo "Both Strings are equal" else echo "Strings are NOT equal" fi
-L filename
-O filename
Symbolic link
True if file exists and is owned by the effective user id.
-d Check for directory existence directoryname -e filename -f filename Check for file existence Check for regular file existence not a directory Check if file exists and is owned by effective group ID.
-r filename
-S filename -s filename
-G filename
-u filename
-g filename -k filename
#!/bin/bash if [ -e /carpeta/archivo ] then echo "File exists" else echo "File does not exists" fi
Sentencia for
Este bucle sirve para repetir un determinado numero de veces una o varias instrucciones. for variables in {inicio fin incremento} do instruccion1 instruccion2 done
done
Ejercicios propuestos
1. Cree un script que sea interpretado por bash, que al ejecutarse busque entre sus directorios, todos los archivos, ordene los nombres alfabticamente y le cree un archivo de texto con esta informacin. Ayuda: Puede emplear la opcin -R de ls para listar subdirectorios, y la opcin -u de sort. 2. La variable de ambiente HOME contiene el nombre de su directorio personal. Comprebelo y despus empleela para cambiarse a su directorio. Despus cambie esta variable y explique que ocurre con el comodn '~'. 3. Qu hace el comando echo `ls` ? (note que se usan apstrofes invertidos).
4. Qu hace la secuencia: N=6 echo "'1+$N' = $((1+$N))" Despus de dar su respuesta, comprubela empleando un intrprete de comandos.
5. Cree un script que al ser ejecutado, cree un archivo script2. El archivo script2 creado debe poner la variable PATH en el valor que tenga cuando el primer script sea ejecutado, aadir a tal variable la ruta /opt/bin y debe crear un alas que cuando se ejecute muestre el contenido de la variable PATH (no olvide cambiar el modo del archivo script2 generado para que sea ejecutable).
Ejercicios propuestos
6. Escriba un sccript que cree sin intervencin del ejecutante 50 usuarios: user1, user2, user3.user50. A cada uno le debe crear una carpeta llamada tareas, con un archivo dentro llamado listado. Cree tambin un script que elimine todo lo creado por el anterior script.
Ejercicios propuestos
6. Haga un script que despus de ejecutarse pida al usuario 2 nmeros y despus presente la suma, la resta, el producto y la divisin. 7. Haga un script empleando condicional(s) if, para que se le pregunte a un usuario dos nmeros para operarlos y que se le permita elegir que tipo de operacin quiere realizar (+,,*,%). 8. Cree un script que muestre un mensaje cada hora en todas las terminales o consolas que se tengan abiertas en el equipo. El mensaje debe decir : Abstngase de hacer mal uso de los recursos, est siendo observado.
Fuentes
Fuentes disponibles a Octubre de 2012 http://aurea.es/wp-content/uploads/scriptsenlinux.pdf http://linuxconfig.org/Bash_scripting_Tutorial http://structio.sourceforge.net/guias/AA_Linux_colegio/scriptsbasicos-para-bash.html http://www.freeos.com/guides/lsst/ch02sec02.html
http://www.cyberciti.biz/faq/bash-for-loop/