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 p>
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