Script alta y buscar.sh casi solucionado

Iniciado por Anonymous09, 23 Enero 2019, 21:04 PM

0 Miembros y 1 Visitante están viendo este tema.

Anonymous09

Buenas foro, necesito que le miren un pequeño fallo que no encuentro. En uno de los script que les voy a mostrar ahora, tengo un IF con una condición muy básica, pero no lo ejecuta. solo ejecuta la parte del ELSE. Se lo muestro:

salir ()

{

         exit 1

}
trap 2 3 15

if [ $# -ne 4 ]
then

      exit 2

else
     
     a=$(bash buscar.sh 1 $1 )

     if [ $a == $1 ]
     then
            exit 0
     else
           echo $1:$2:$3:$4 >> alumnos.txt
     fi
fi

---------------------------------------------------------------------------------------------

Pues bien, viendo esto lo que quiero hacer es que llame al script buscar.sh que lo único que va hacer dicho script es de todas las lineas buscar justo la que quiero y sacarla (eso en el script buscar.sh), pero en este que les e mostrado, quiero que ejecute el script buscar.sh y con lo que saque que lo compare con el primer parámetro introducido cuando ejecutamos el script alta.sh. Si dicha condicon se cumple quiero que salga sinos, quiero que los 4 parametros que introduzca cuando ejecute el comando alta.sh lo agregre al fichero alumnos.txt

MOD: No escribir título en mayúsculas.

Geovane

#1
¡Hola

intente así

if [ "$#" -ne 4 ]

Saludos
Para servicios, envíe un mensaje privado, sólo para servicios en curso hasta fecha de 10/06/2019

EdePC

Código (bash) [Seleccionar]
EdSon@EdePC ~$ ls
alta.sh  alumnos.txt  buscar.sh

EdSon@EdePC ~$ cat alumnos.txt
11111111:juan:perez:14
22222222:luis:lopez:16

EdSon@EdePC ~$ cat alta.sh
if [ "$(buscar.sh 1 $1)" == "" ]; then
  echo "$1:$2:$3:$4" >> alumnos.txt
else
  echo "El DNI $1 ya existe"
fi

EdSon@EdePC ~$ cat buscar.sh
while IFS=: read -ra campos; do
  if [ ${campos[$1 - 1]} == $2 ]; then
    echo "${campos[0]}:${campos[1]}:${campos[2]}:${campos[3]}"
  fi
done < alumnos.txt

EdSon@EdePC ~$ buscar.sh 2 luis
22222222:luis:lopez:16

EdSon@EdePC ~$ alta.sh 11111111 pepe grillo 14
El DNI 11111111 ya existe

EdSon@EdePC ~$ alta.sh 33333333 pepe grillo 14

EdSon@EdePC ~$ cat alumnos.txt
11111111:juan:perez:14
22222222:luis:lopez:16
33333333:pepe:grillo:14

EdSon@EdePC ~$


Referencias:
https://openlibra.com/es/book/download/practicas-de-fundamentos-de-software
https://openlibra.com/es/book/download/bash-notes-for-professionals
https://openlibra.com/es/book/download/advanced-bash-scripting-guide-ed-2012