4. Crear un programa que meta dos cadenas de caracteres en dos variables. Y las compare, si
son iguales mostrara por pantalla las cadenas son iguales y si no lo son mostrara el mensaje
contrario.
read -p "introduce una cadena: " cadena1
read -p "Introduce otra cadena: " cadena2
if [ $cadena1 = $cadena2 ]
then echo "son iguales"
else echo "son distintas"
fi
5. Crear un script que reciba un directorio como primer parámetro, y a continuación una lista
de archivos. El script debe validar que los parámetros recibidos sean realmente archivos y
luego copiarlos al directorio recibido
if [ -d $1 ]; then
nombre_dir=$1
shift
for i in $*; do
if [ -f $i ]; then
cp $i $nombre_dir
else
echo "El archivo $i no es válido"
fi
done;
else
echo "El primer parámetro debe ser un directorio"
fi
6. Introducir un texto a un archivo.
read -p "Desea añadir una nueva dirección (s/n): " CONF
case $CONF in
[sS]*) read -p "Introduce la dirección:" DIRECCION
echo $DIRECCION >> Fichero_Datos.txt
;;
*) echo "El fichero no se modifica"
;;
esac
7. Imprimir y eliminar un archivo
echo “Por favor seleccione P, D o Q para”
echo “[P]rint Imprime un archivo”
echo “[D]elete Borra un archivo”
echo “[Q]uit Sale del programa”
read response
case $response in
P|p) echo “¿Nombre del archivo a imprimir?”
read filename
lp $filename;;
D|d) echo “¿Nombre del archivo a eliminar?”
read filename
rm $filename;;
*) echo “Salir ahora”;;
esac
8. Este script es un claro ejemplo de cómo comprobar si un usuario y un grupo existen en el
sistema, vemos también el uso que se le da al elif.
#! /bin/bash
clear
read -p “Introduce usuario… ” user
read -p “Introduce grupo… ” group
if `grep -e “$user:.*” /etc/passwd >/dev/null`
then
if `grep -e “$group:.*” /etc/group >/dev/null`
then
echo “Usuario y grupo ya existen en el sistema”
fi
elif `grep -e “$group:.*” /etc/group >/dev/null`
then
echo “usuario no existe, grupo si!!”
else
echo “Ni grupo ni usuario existen”
fi
9. Con un bucle for podrá especificar un conjunto de archivos o valores para que se utilicen con
algunos comandos. Por ejemplo, para copiar todos los archivos cuyos nombres terminen por
.sh al directorio textdir utilice el siguiente bucle for:
#!/bin/bash
mkdir textdir
for i in $(ls *.sh)
do
cp $i textdir/$i
done
El shell interpreta la expresión anterior y hace que la variable i tome en cada iteración el valor
de cada uno de los ficheros de la lista que sigue a in.
10 Si es el usuario root apagar
#!/bin/bash
if [ "$(whoami)" = 'root' ] then
shutdown -r +1
else
echo "El script no se ejecutará porque usted no es usuario 'root'"
fi