Rearrange repo pt.2
This commit is contained in:
parent
b98a284944
commit
b5c1d62c29
|
@ -1,166 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
FILE="./BANCO.txt"
|
|
||||||
RE='^[0-9]+$'
|
|
||||||
|
|
||||||
pause() {
|
|
||||||
read -p "Pulse enter para continuar: "
|
|
||||||
}
|
|
||||||
|
|
||||||
list() {
|
|
||||||
FILE_CONTENTS="$(cat $FILE | sort -t ';' -k3)"
|
|
||||||
if ! checkExists $FILE_CONTENTS; then
|
|
||||||
formatear "Tu cuenta no tiene ningún movimiento!"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
formatear "$FILE_CONTENTS"
|
|
||||||
}
|
|
||||||
|
|
||||||
formatear() {
|
|
||||||
TEXTO="$1"
|
|
||||||
|
|
||||||
echo -e "\n----------------------------------"
|
|
||||||
echo "$TEXTO"
|
|
||||||
echo -e "----------------------------------\n"
|
|
||||||
}
|
|
||||||
|
|
||||||
fileCheck() {
|
|
||||||
if [[ ! -f "$FILE" ]]; then
|
|
||||||
touch ./BANCO.txt
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
addMove() {
|
|
||||||
read -p "Nombre: " NOMBRE
|
|
||||||
FECHA=$(date -u +%Y-%m-%d_%H-%M-%S)
|
|
||||||
IMPORTE=
|
|
||||||
|
|
||||||
while [[ ! $IMPORTE =~ $RE ]]; do
|
|
||||||
read -p "Importe: " IMPORTE
|
|
||||||
done
|
|
||||||
|
|
||||||
read -p "Descripción: " DESCRIPCION
|
|
||||||
|
|
||||||
NUM_MOV=$(findFreeID)
|
|
||||||
echo "$NUM_MOV;$NOMBRE;$FECHA;$IMPORTE;$DESCRIPCION" >> $FILE
|
|
||||||
formatear "Movimiento exitosamente añadido!"
|
|
||||||
}
|
|
||||||
|
|
||||||
checkExists() {
|
|
||||||
CHECK_TARGET="$1"
|
|
||||||
TARGET_CONTENTS=$(grep "^$1;*" $FILE)
|
|
||||||
|
|
||||||
if [[ -z $TARGET_CONTENTS ]]; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
deleteMove() {
|
|
||||||
DELETE_TARGET="$1"
|
|
||||||
|
|
||||||
if ! checkExists $DELETE_TARGET; then
|
|
||||||
formatear "Este movimiento no existe!"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
formatear "$TARGET_CONTENTS"
|
|
||||||
read -p "Desea borrar este movimiento? [y/N] " ELEC
|
|
||||||
if [[ $ELEC != "y" ]]; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
sed -i "/^$DELETE_TARGET;/d" $FILE
|
|
||||||
formatear "Movimiento exitosamente borrado!"
|
|
||||||
}
|
|
||||||
|
|
||||||
findFreeID() {
|
|
||||||
COUNT=0
|
|
||||||
while true; do
|
|
||||||
LINE=$(grep "^$COUNT;*" $FILE)
|
|
||||||
if [ -z "$LINE" ]; then
|
|
||||||
echo $COUNT
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
let COUNT++
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
searchMove() {
|
|
||||||
SEARCH_TARGET=$1
|
|
||||||
|
|
||||||
if ! checkExists $SEARCH_TARGET; then
|
|
||||||
formatear "Este movimiento no existe!"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
formatear "$(grep "^$SEARCH_TARGET;*" $FILE)"
|
|
||||||
}
|
|
||||||
|
|
||||||
search() {
|
|
||||||
read -p "ID de movimiento a buscar: " MOV
|
|
||||||
echo $MOV
|
|
||||||
}
|
|
||||||
|
|
||||||
calcTotal() {
|
|
||||||
TOTAL=0
|
|
||||||
CALC_COL=$(cut -d ";" -f 4 $FILE)
|
|
||||||
|
|
||||||
while read -r v; do
|
|
||||||
TOTAL=$(($TOTAL + $v))
|
|
||||||
done<<<$CALC_COL
|
|
||||||
|
|
||||||
formatear "Tienes un total de $TOTAL€ en movimientos!"
|
|
||||||
}
|
|
||||||
|
|
||||||
status() {
|
|
||||||
clear
|
|
||||||
cat <<'END_CAT'
|
|
||||||
+-----------------------------------------------------------------+
|
|
||||||
| MENU DEL BANCO |
|
|
||||||
+-----------------------------------------------------------------+
|
|
||||||
| a - Añadir un movimiento bancario. |
|
|
||||||
| b - Buscar un movimiento bancario por NUM_MOV. |
|
|
||||||
| l - Listar todos los movimientos bancarios ordenados por fecha. |
|
|
||||||
| t - Calcular el saldo total de la cuenta. |
|
|
||||||
| d - Eliminar movimiento bancario. |
|
|
||||||
| s - Salir del programa. |
|
|
||||||
+-----------------------------------------------------------------+
|
|
||||||
END_CAT
|
|
||||||
}
|
|
||||||
|
|
||||||
main() {
|
|
||||||
fileCheck
|
|
||||||
while true; do
|
|
||||||
status
|
|
||||||
read -p "Opción: " OPT
|
|
||||||
case "$OPT" in
|
|
||||||
"a")
|
|
||||||
addMove
|
|
||||||
pause
|
|
||||||
;;
|
|
||||||
"b")
|
|
||||||
MOV=$(search)
|
|
||||||
searchMove "$MOV"
|
|
||||||
pause
|
|
||||||
;;
|
|
||||||
"l")
|
|
||||||
list
|
|
||||||
pause
|
|
||||||
;;
|
|
||||||
"t")
|
|
||||||
calcTotal
|
|
||||||
pause
|
|
||||||
;;
|
|
||||||
"d")
|
|
||||||
MOV=$(search)
|
|
||||||
deleteMove "$MOV"
|
|
||||||
pause
|
|
||||||
;;
|
|
||||||
"s")
|
|
||||||
exit
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
29
script1.sh
29
script1.sh
|
@ -1,29 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
USUARIO=$1
|
|
||||||
TITULOS=( "Nombre" "Contraseña" "UID" "GID" "Comentario" "Directorio Home" "Shell" )
|
|
||||||
|
|
||||||
# if [[ -z $USUARIO ]]; then
|
|
||||||
# echo "Usage: ./script1.sh root"
|
|
||||||
# exit
|
|
||||||
# fi
|
|
||||||
#
|
|
||||||
|
|
||||||
getUserInfo() {
|
|
||||||
USER=$1
|
|
||||||
IFS=':'
|
|
||||||
COUNT=0
|
|
||||||
for v in $USER; do
|
|
||||||
echo "${TITULOS[$COUNT]}: $v"
|
|
||||||
let COUNT++
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
main() {
|
|
||||||
while read -r v; do
|
|
||||||
# I hate this
|
|
||||||
getUserInfo "$v"
|
|
||||||
echo "--------------------"
|
|
||||||
done</etc/passwd
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
Loading…
Reference in New Issue