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.
¡Hola
intente así
if [ "$#" -ne 4 ]
Saludos
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