No estoy seguro de cómo hacer un if
con múltiples pruebas en shell. Estoy teniendo problemas para escribir este guión:Usando if elif fi en shell scripts
echo "You have provided the following arguments $arg1 $arg2 $arg3"
if [ "$arg1" = "$arg2" && "$arg1" != "$arg3" ]
then
echo "Two of the provided args are equal."
exit 3
elif [ $arg1 = $arg2 && $arg1 = $arg3 ]
then
echo "All of the specified args are equal"
exit 0
else
echo "All of the specified args are different"
exit 4
fi
El problema se me sale este error cada vez que:
./compare.sh: [: falta `] comando' no encontrado
Bastantes comentaristas han sugerido que use [[en lugar de [pero eso hace que su script sea específico de bash. Tendrá menos problemas de mantenimiento y portabilidad si puede seguir con la sintaxis anterior de Bourne shell (sh). –