Está en la página 1de 6

Actividad SCRIPPTING

1. Crearemos un archivo llamado alfa.sh


2. Asignamos al archivo alfa.sh los permisos de ejecución.
3. Editamos el archivo alfa con su editor favorito, que puede ser “ vi “.
4. Crearemos una variable a la que se asigna el contenido de otra variable:

#!/bin/bash
ANIMAL=gato
MASCOTA=$ANIMAL
echo "Mi mascota favorita es $MASCOTA"
5. Grabamos el archivo y lo ejecutamos:

./alfa.sh

6. Otra forma de asignar una variable es utilizar la salida de otro comando como el contenido de la
variable incluyendo el comando entre las comillas invertidas. Agreguemos a nuestro archivo:

DIRECTORIO_ACTUAL=`pwd`

echo "Estas en $DIRECTORIO_ACTUAL"

7. Investigue que utilidad tiene el comando sed y el comando awk.


……………………………………………………………………………………………………………………………………………..

8. Agregue en nuestro script un comando de ejemplo de como podríamos usar sed y awk para
obtener información de algun archivo del sistema?
Por ejemplo: awk -F: '{print $1}' /etc/passwd -> nos devolvería el nombre de los usuarios que
existen en el sistema.
……………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………………………………………..

Ing. Alex Alfonso Gonzales Suarez


9. Es posible obtener entradas del usuario de su script y asignarlo a una variable mediante el
comando read (o «leer» en español):

echo -n "Cual es tu nombre? "

read NOMBRE

echo "Hola $NOMBRE!"

10. Podemos verificar si todo funciona bien, con el código de salida. Para verificar el código de
salida, ejecutaremos:

echo $?

11. Estableceremos un código de salida para nuestro script, asi que agregamos al final:

# Algo fallo!

exit 1

12. Para verificar el código de salida, ejecutaremos:

echo $?

13. Que obtuvimos como resultado?

………………………………………………………………………………………………………………………………………….

14. Ahora buscaremos si en el archivo /etc/passwd se encuentra la cadena “root”.


Utilizaremos el comando grep que nos ayuda a realizar búsquedas de una cadena de texto en un
archivo y devuelve el código de salida 0 si la encuentra.
Crearemos un nuevo archivo “beta.sh” y agregaremos el siguiente código a nuestro script:

if grep -q root /etc/passwd; then


echo root esta en el archivo de claves
else
echo root no está en el archivo de claves
fi

Ing. Alex Alfonso Gonzales Suarez


15. El comando test te da un acceso fácil los operadores de prueba de comparación y archivos. Por
ejemplo:

16. Realiza un ejemplo diferente de 5 items del cuadro anterior y explica su resultado.
…………………………………………………………………………………………………………………………………………………

17. Podemos pasarle a un LOOP la lista de valores directamente:

#!/bin/bash

for NAME in Alex Marco David Patricia; do

echo "Hola $NAME"

done

18. Realice el mismo ejemplo anterior, pero usando una variable en vez de pasar la lista
directamente:

…………………………………………………………………………………………………………………………………………………

Ing. Alex Alfonso Gonzales Suarez


19. Podemos crear Tambien una lista que se expanda a todos los archivos del directorio actual
Utilizamos el comodin * (file glob)

for S in *; do

echo "Realizar operacion sobre $S"

done

20. Podemos realizar un bucle sobre una secuencia de datos:

for i in $(seq 1 5); do

echo $i;

done

21. De que otra forma podriamos escribir el bucle anterior para que lleve a cabo lo mismo:

……………………………………………………………………………………………………………………………………………….

22. Cree los siguientes archivos en su carpeta propietaria:

Paises.txt Ciudades.txt Playas.txt


Continentes.txt
Peru Lima Cancun
America
Colombia New York Totoritas
Europa
Estados Unidos Dublin Florida
Africa
Alemania Moscu San Andres
Asia

23. Ejecute el siguiente bucle en un script:

for i in $(ls *.txt); do

cat "$i" | head -n1;

done

24. Que realizo el bucle anterior?


……………………………………………………………………………………………………………………………………………..

25. Cree un nuevo script que nos permita imprimir en pantalla la penúltima línea de cada archivo
……………………………………………………………………………………………………………………………………………..

26. Podemos utilizar el comando “let” para controlar el incremento de la variable contadora de
repeticiones:

Ing. Alex Alfonso Gonzales Suarez


#!/bin/sh
echo "INICIO DE PRUEBA"
x=1
while [ $x -le 10 ]
do
echo x: $x
let x++
done
echo "FIN DE PRUEBA"
exit 0
27. Ahora cambiaremos un poco el código anterior:

#!/bin/sh

echo "INICIO DE PRUEBA"

x=1

while [ $x -ge 0 ]

do

echo x: $x

let x++

done

echo "FIN DE PRUEBA"

exit 0

28. Presione CTRL + C para detener la ejecución del programa.

29. Ahora utilizaremos el código anterior para crear una carpeta por cada mes del año:

#!/bin/sh
echo "CREACION DE CARPETAS"
x=1
mkdir 2021
while [ $x -le 12 ]

Ing. Alex Alfonso Gonzales Suarez


do
echo x: $x
mkdir 2021/mes$x
let x++
done
echo "FIN"
exit 0
30. Liste el contenido de la carpeta 2021 dentro de su ubicación actual y verifique el contenido.

31. Ejecutemos el siguiente script:

#!/bin/sh

echo "Otra prueba"

FN=archivo1.txt

rm $FN 2> /dev/null # borrar el archivo si ya existe

x=1

while [ $x -le 10 ] # 10 lineas

do

echo "x: $x"

echo "Linea $x" >> $FN # agregamos líneas al archivo

let x++

done

echo "FIN"

exit 0

Ing. Alex Alfonso Gonzales Suarez

También podría gustarte