Programacion Bash Script
Programacion Bash Script
Script de Linux
P1.1.sh Realiza un script que compruebe si dos cadenas
que se le pasan como parámetros son iguales o no.
# !/bin/bash
if test $1 == $2
then
else
#!/bin/bash
read num1
then
else
fi
#!/bin/bash
read nombre1
if test $nombre1 == "Colon" || $nombre1=="colon" ||
$nombre1=="COLON"
then
else
fi
#!/bin/bash
read num1
resto=`expr $num1 % 2`
then
else
suma=`expr $1 + $2`
resta=`expr $1 - $2`
multiplicacion=`expr $1 \* $2`
division=`expr $1 / $2`
resto=`expr $1 % $2`
b. Usuarios conectados
c. Quien soy
d. Ver el contenido del directorio personal del usuario
conectado
#!/bin/bash
pwd
whoami
who
ls -l ~/
date
#!/bin/bash
read edad
if test $edad -lt 10
then
else
then
else
fi
fi
#!/bin/bash
read nombre
case $nombre in
esac
1.- Suma.
2.- Resta.
3.- Multiplicación.
4.- División.
#!/bin/bash
read num1
read opcion
case $opcion in
resto=`expr $num1 % 2`
else
fi;;
resto2=`expr $num2 % 2`
then
else
fi;;
esac
read nombre1
read nombre2
read nombre3
sort nombres-ordenado.txt
cat nombres.txt
P2.3.sh Crea un script que pida dos números por teclado. Si
el primero es mayor que el segundo los restamos. En caso
contrario mostramos un mensaje indicando que no se
pueden restar.
#!/bin/bash
read num1
read num2
then
else
fi
P2.4.sh Crea un script que pida dos números por línea de
comando. Si el primero es mayor que el segundo los
restamos. En caso contrario mostramos un mensaje
indicando que no se pueden restar.
#!/bin/bash
if test $1 -gt $2
then
resta=`expr $1 - $2`
else
fi
Nº de parámetros introducidos: $#
El primer parámetro: $1
El segundo parámetro: $2
#!/bin/bash
#!/bin/bash
num=0
do
echo "$num"
num=`expr $num + 1`
done
#!/bin/bash
num=0
do
echo "$num"
num=`expr $num + 1`
done
#!/bin/bash
num=0
while test $num -le 20
do
echo "$num"
num=`expr $num + 2`
done
#!/bin/bash
num=0
do
echo "$num"
num=`expr $num + 2`
done
P3.5.sh Pide un nombre de fruta por teclado hasta que
escriba “salir” y llévalos a un fichero llamado p58-frutas.txt.
Muestra el contenido del fichero ordenado.
#! /bin/bash
read fruta
do
echo "$fruta"
cat p58-frutas.txt
done
#! /bin/bash
echo " dame un número y muestra su tabla de multiplicar"
read numero
n=0
do
n='expr $n + 1'
done
#! /bin/bash
read numero
n=0
until test $numero -gt 10
do
echo "$numero * $n “
n='expr $n + 1'
done
#!/bin/bash
do
echo "numero:$i"
done
#! /bin/bash
echo "escribir los 20 primeros numeros pares con for"
do
multi=`expr 2 \* $i`
echo "$multi"
done
#! /bin/bash
do
suma=`expr $i + $i + 1`
echo "$suma"
done
P4.4.sh Pide un número por teclado y muestra la tabla de
multiplicar de ese número.
#! /bin/bash
read num
do
multi=`expr $i \* $num`
done
#! /bin/bash
do
multi=`expr $i \* $1`
echo "$1 * $i=$multi"
done
#!/bin/bash
for contador in $*
do
echo “$contador”
done
#!/bin/bash
do
resto=`expr $i % 2`
themn
echo “$i”
totalpares=`expr $totalpares + 1
fi
done
#!/bin/bash
clear
echo "debes introducir dos numeros por parametros, el
primero mayor que el segundo”
resultado=`expr $1 - $2`
cuadrado1=`expr $1 \* $1`
cuadrado2=`expr $2 \* $2`
suma=`expr $1 + $2`
multiplicacion=`expr $1 \* $2`
#!/bin/bash
clear
date +%A
P5.3.sh Realiza un script que escriba al revés una palabra.
#!/bin/bash
clear
rev
#!/bin/bash
clear
for ((i=1;i<=10;i++))
do
for ((j=1;j<=10;j++))
do
multi=`expr $i \* $j`
echo "$i*$j=$multi"
done
done
equipo1:equipo2:golesequipo1:golesequipo2
function op1 ()
read num
do
read equipo1
read equipo2
read goles1
read goles2
echo “equipo1:equipo2:goles1:goles2”
done
function op2 ()
if test -f ~/boletinXIII/futbol.txt
then
cat ~/ boletinXIII/futbol.txt
else
fi
function op3 ()
read equipo
numpartidos=`wc -l
~/misscripts/boletinXIII/futbol.txt`
else
fi
function op4 ()
then
echo "los equipos $equipo1 y $equipo2 han
empatado a $goles1"
else
fi
1. Partidos ganados +3
2. Partidos empatados +1
function op5 ()
if test -f ~/misscripts/boletinXIII/futbol.txt
then
then
rm ~/misscripts/boletinXIII/futbol.txt
else
then
else
rm ~/misscripts/boletinXIII/futbol.txt
fi
fi
else
mkdir ~/misscripts/boletinXIII/futbol.txt
fi
6. Salir
futbol.txt
sevilla:betis:3:0
madrid:barcelona:5:0
cadiz:jaen:2:1
barcelona:sevilla:0:4
jerez:cadiz:2:3
cadiz-6p
sevilla-6p
madrid-3p
barcelona-0p
betis-0p
jaen-0p
jerez-0p
6. Añadir equipos al fichero y generar aleatoriamente los
resultados de los goles de los dos equipos, con valores del 0
al 5.
function op5 ()
if test -f ~/misscripts/boletinXIII/futbol.txt
then
then
rm ~/misscripts/boletinXIII/futbol.txt
else
then
echo "partidos empatados +1" >>
~/misscripts/bo$
else
rm ~/misscripts/boletinXIII/futbol.txt
fi
fi
else
mkdir ~/misscripts/boletinXIII/futbol.txt
fi
opc=0
do
read opc
case $opc in
1) op1;;
2) op2;;
3) op3;;
4) op4;;
5) op5;;
6) op6;;
7) exit;;
esac
done
P6.2.sh Escriba un script que admita palabras (seguidas de
enter) por parte del usuario hasta que este teclee ”salir”.
Después debe aparecer en pantalla el número de palabras
que se han introducido y una despedida.
#/bin/bash
clear
contador=0
read opcion
do
read palabra
contador=`expr $contador + 1`
done
#/bin/bash
clear
contador=0
read opcion
do
echo "dime una palabra"
read palabra
read opcion
contador=`expr $contador + 1`
done
#/bin/bash
clear
contador=0
echo "escriba palabras seguidas de enter hasta escribir salir"
read opcion
do
read palabra
read opcion
then
numerito=`wc -l ~/misscripts/boletinXIV/palabras.txt
| cut -c1`
do
resultado=`sed -n "$i"p
~/misscripts/boletinXIV/palabra$
echo "$resultado"
done
else
fi
contador=`expr $contador + 1`
done
#/bin/bash
clear
suma=0
for ((i=1;i<=100;i++))
do
echo "$suma"
done
#/bin/bash
clear
read numero1
read numero2
then
suma=0
contador=0
for ((i=$numero1;i<=$numero2;i++))
do
contador=`expr $contador + 1`
done
else
fi
clear
read numero1
read numero2
then
suma=0
contador=0
for ((i=$numero1;i<=$numero2;i++))
do
contador=`expr $contador + 1`
done
read num1
do
read num1
done
suma=0
contador=0
for ((i=$num1;i<=$numero2;i++))
do
contador=`expr $contador + 1`
done
fi
P6.8.Ssh Haz que el ordenador “piensa” en un número al
azar entre 1 y 50. El usuario ha de adivinarlo en 5
oportunidades. El ordenador señalará si es mayor o menor.
#/bin/bash
clear
opcion=0
for ((i=1;i<=5;i++))
do
read num1
then
exit
else
if test $num1 -gt $numero
then
else
fi
fi
done
#/bin/bash
clear
valor1=201
do
valor1=`echo $((100 + $RANDOM %200))`
done
valor2=201
do
done
valor3=201
do
done
media=`expr $suma / 3`
#/bin/bash
clear
read num
do
echo "*"
done
POTENCIA:
Base=5
5^3= 5 * 5 * 5 =125
Exponente=3
#/bin/bash
clear
read base
read exponente
contador=$exponente
num=1
do
contador=`expr $contador - 1`
done
leche:alimentacion:15:10,30
pan:3:1,15
mantequilla:lácteos:1:2,5
galletas:alimentación:2:3,45
cocacola:bebidas:12:3,80
zumos:bebidas:6:9,12
yogures:lácteos:4:5,23
champú:perfumería:1:1,80
21. Salir.
#bin/bash
clear
function op1crear_carpeta ()
if test -d ~/COMPRAS
then
echo "la carpeta existe"
else
mkdir ~/COMPRAS
fi
function op2pedir_articulos ()
if test -d ~/COMPRAS
then
if test -f ~/COMPRAS/nosvamosdecompra.txt
then
read datos
read articulo
read categoria
do
read categoria
done
read cantidad
read precio
echo $articulo:$categoria:
$cantidad:$precio >> ~/COMPRAS/nosvamosdecompra.txt
echo "si quieres salir, escribe salir,
sino cualquier palabra y sigue introduciendo datos"
read datos
done
else
echo $articulo:$categoria:$cantidad:
$precio >> ~/COMPRAS/nosvamosdecompra.txt
fi
else
fi
function op3crear_otra_carpeta ()
if test -d ~/COMPRAS
then
if test -d ~/COMPRAS/BACKUP
then
echo "la carpeta existe"
else
mkdir ~/COMPRAS/BACKUP
fi
else
fi
function op4crear_copia ()
if test -f ~/COMPRAS/nosvamosdecompra.txt
then
read carpeta
mkdir ~/COMPRAS/$carpeta
cp ~/COMPRAS/nosvamosdecompra.txt
~/COMPRAS/$carpeta/compra-c.txt
else
fi
function op5crear_enlace_simb ()
if test -f ~/COMPRAS/nosvamosdecompra.txt
then
if test -d ~/COMPRAS/BACKUP
then
ln -s ~/COMPRAS/nosvamosdecompra.txt
~/COMPRAS/BACKUP/compra-s.txt
else
fi
else
fi
function op6crear_enlace_duro ()
if test -f ~/COMPRAS/nosvamosdecompra.txt
then
if test -d ~/COMPRAS/BACKUP
then
ln ~/COMPRAS/nosvamosdecompra.txt
~/COMPRAS/BACKUP/compra-d.txt
else
fi
else
function op7mostrar_contenido ()
if test -d ~/COMPRAS/BACKUP
then
ls -i ~/COMPRAS/BACKUP
else
fi
function op8crear_fichero_vacio ()
if test -d ~/COMPRAS/BACKUP
then
echo "vamos a crear un fichero vacio y se guarda
en BACKUP"
touch ~/COMPRAS/BACKUP/ficherovacio.txt
else
fi
function op9mostrar_fichero ()
if test -d ~/COMPRAS/BACKUP
then
else
fi
}
function op10mostrar_enlaces ()
if test -d ~/COMPRAS/BACKUP
then
ls -l ~/COMPRAS/BACKUP >
~/COMPRAS/BACKUP/sim.txt
for ((i=2;i<=$lineas;i++))
do
corta=`sed -n "$i"p
~/COMPRAS/BACKUP/sim.txt |cut -c1`
then
sed -n "$i"p
~/COMPRAS/BACKUP/sim.txt >>
~/COMPRAS/BACKUP/simfin.txt
else
echo "no existe ningun enlace
simbolico"
fi
done
rm ~/COMPRAS/BACKUP/sim.txt
cat ~/COMPRAS/BACKUP/simfin.txt
rm ~/COMPRAS/BACKUP/simfin.txt
else
fi
function op11mostrar_contenido_archivos ()
if test -f ~/COMPRAS/nosvamosdecompra.txt
then
else
fi
echo ""
if test -f ~/COMPRAS/$carpeta/compras-c.txt
then
cat ~/COMPRAS/$carpeta/compras-c.txt
else
fi
echo ""
if test -f ~/COMPRAS/BACKUP/compras-d.txt
then
cat ~/COMPRAS/BACKUP/compras-d.txt
else
echo ""
if test -f ~/COMPRAS/BACKUP/compras-s.txt
then
cat ~/COMPRAS/BACKUP/compras-s.txt
else
fi
function op12crear_ficheros ()
if test -f ~/COMPRAS/nosvamosdecompra.txt
then
fi
echo ""
if test -f ~/COMPRAS/$carpeta/compras-c.txt
then
else
fi
echo ""
if test -f ~/COMPRAS/BACKUP/compras-d.txt
then
else
echo ""
if test -f ~/COMPRAS/BACKUP/compras-s.txt
then
else
fi
function op13crea_ficheros_art ()
if test -f ~/COMPRAS/nosvamosdecompra.txt
then
do
precio=`sed -n "$i"p
~/COMPRAS/nosvamosdecompra.txt | cut -d: -f4`
then
sed -n "$i"p
~/COMPRAS/nosvamosdecompra.txt >>
~/COMPRAS/barato.txt
else
fi
done
else
fi
function op14crea_ficheros_extr
{
if test -f ~/COMPRAS/nosvamosdecompra.txt
then
num=`wc -l ~/COMPRAS/nosvamosdecompra.txt |
cut -c1`
for ((i=1;i<=$num;i++))
do
categoria=`sed -n "$i"p
~/COMPRAS/nosvamosdecompra.txt | cut -d: -f2`
then
sed -n "$i"p
~/COMPRAS/nosvamosdecompra.txt >>
~/COMPRAS/alimentacion.txt
else
fi
done
else
fi
function op15cuenta_productos ()
if test -f ~/COMPRAS/nosvamosdecompra.txt
then
numero=`wc -l
~/COMPRAS/nosvamosdecompra.txt | cut -c1`
else
fi
function op16añadir_articulos ()
{
op2pedir_articulos
function op17borrar_articulos ()
if test -f ~/COMPRAS/nosvamosdecompra.txt
then
sed -e '/perfumeria/d'
~/COMPRAS/nosvamosdecompra.txt>
~/COMPRAS/sinperfumeria.txt
else
fi
function op18solicitar_articulo ()
if test -f ~/COMPRAS/nosvamosdecompra.txt
then
sed -e '/"$articulo"/d'
~/COMPRAS/nosvamosdecompra.txt > ~/COMPRAS/nuevo.txt
rm ~/COMPRAS/nuevo.txt
else
fi
function op19suma_coste ()
# me da error y no se si me funciona
if test -f ~/COMPRAS/nosvamosdecompra.txt
then
num=`wc -l ~/COMPRAS/nosvamosdecompra.txt
| cut -c1`
for ((i=1;i<=$num;i++))
do
cantidad=`sed -n "$i"p
~/COMPRAS/nosvamosdecompra.txt | cut -d: -f3`
precio=`sed -n "$i"p
~/COMPRAS/nosvamosdecompra.txt | cut -d: -f4`
suma=`expr $i + $coste`
done
else
fi
function op20precio_medio ()
if test -f ~/COMPRAS/nosvamosdecompra.txt
then
num=`wc -l ~/COMPRAS/nosvamosdecompra.txt |
cut -c1`
for ((i=1;i<=$num;i++))
do
cantidad=`sed -n "$i"p
~/COMPRAS/nosvamosdecompra.txt | cut -d: -f3`
precio=`sed -n "$i"p
~/COMPRAS/nosvamosdecompra.txt | cut -d: -f4`
done
else
fi
opcion=0
do
echo
"**************************************************
**************"
echo
"**************************************************
**************"
read opcion
case $opcion in
1) op1crear_carpeta;;
2) op2pedir_articulos;;
3) op3crear_otra_carpeta;;
4) op4crear_copia;;
5) op5crear_enlace_simb;;
6) op6crear_enlace_duro;;
7) op7mostrar_contenido;;
8) op8crear_fichero_vacio;;
9) op9mostrar_fichero;;
10) op10mostrar_enlaces;;
11) op11mostrar_contenido_archivos;;
12) op12crear_ficheros;;
13) op13crea_ficheros_art;;
14) op14crea_ficheros_extr;;
15) op15cuenta_productos;;
16) op16añadir_articulos;;
17) op17borrar_articulos;;
18) op18solicitar_articulo;;
19) op19suma_coste;;
20) op20precio_medio;;
21) exit;;
esac
done