Red de conocimiento informático - Aprendizaje de programación - Problemas de programación de Shell en Linux

Problemas de programación de Shell en Linux

#!/bin/bash

Advertencia() {

echo -e "uso:`basename $0`\n"

echo " -d Eliminar datos."

echo " -a Insertar datos."

echo " -s Consultar datos."

echo " `basename $0` mostrar todo."

echo

}

DIR=/root/shell/data

DATA=students.data

XUEHAO="Sno"

XINGMING="Nombre"

XINGBIE="Sexo"

ZHUANYE="Mayor"

cd $DIR

si [ "$#" -eq 0 ] ; entonces

printf "%-6s\t%-12s\t%-6s\t %-s\n" $XUEHAO $XINGMING $XINGBIE $ZHUANYE

echo

cat $DATA | awk -F: '{printf("%-6s\t%-12s \t%-6s\t%-s\n",$1,$2,$3,$4)}'

salir

fi

caso $1 en

-a)

si ! grep -q "$2" $DATA 2>&1 ;entonces

echo "$2" >> estudiantes.datos

salir

else

printf "%-6s\t%-12s\t%-6s\t%-s\n" $XUEHAO $XINGMING $XINGBIE $ZHUANYE

echo

echo $2 | awk -F: '{printf("%-6s\t%-12s\t%-6s\t%-s\n" ,$1,$2,$3,$4)}'

fi

;;

-d)

si grep "$2 " $DATA >/dev/null 2>&1 ;luego

echo "El registro no existe."

salir

else

leer -p "¿Quieres eliminar el registro? (sí/s/no/n)" respuesta

if [ "$answer" = "y" -o "$answer" = "sí" ] ;entonces

sed -e '/$2/d' > estudiantes.data 2>&1

elif

[ "$respuesta" = "no" -o "$respuesta" = "n" ] ;luego

echo "Cancelado.."

else

echo "Solo puedes ingresar sí/y/no/n"

fi

fi

;;

-s)

si ! grep -q "$2" $DATA 2>&1 ;entonces

echo "El registro no existe."

else

printf "%-6s\t%-12s\t%-6s\ t%-s\n" $XUEHAO $XINGMING $XINGBIE $ZHUANYE

sed -n -e '/$2/p' $DATA | awk -F: '{printf("%-6s\t %-12s\t%-6s\t%-s\n",$1,$2,$3,$4)}'

fi

;;

*)

Advertencia

;;

esac