Estoy tratando de obtener el siguiente script para tomar el uuid de conexión que le pasó (por el administrador de red), compararlo con una lista de uuids para las conexiones de mi hogar (tanto físicas como VPN) y ejecutar ciertos comandos. Sin embargo, el script parece ir a la cláusula "else" todo el tiempo, aunque el uuid sea correcto.
#!/bin/bash
echo $CONNECTION_UUID
Home_UUIDs="5b509e73-8f08-475c-a14d-7037f2f4b87a ba36c69e-c3f1-4480-a484-1eea105311b2 f3889052-719f-4b88-8b94-e1fa189d44f9"
if [[ "$Home_UUIDs" == *"$CONNECTION_UUID"* ]]; then
case "$2" in
up)
echo "Conecting to Home netork..."
ntpdate -vs 192.168.0.18
service ntp start
;;
down)
echo "Disconnecting from home network"
service ntp stop
;;
esac
else
echo "We're not at home..."
service ntp stop
fi
exit 0
Respuesta1
Parece funcionar para mí para los tres uuids:
#!/bin/bash
Home_UUIDs='5b509e73-8f08-475c-a14d-7037f2f4b87a ba36c69e-c3f1-4480-a484-1eea105311b2 f3889052-719f-4b88-8b94-e1fa189d44f9'
for CONNECTION_UUID in 5b509e73-8f08-475c-a14d-7037f2f4b87a \
ba36c69e-c3f1-4480-a484-1eea105311b2 \
f3889052-719f-4b88-8b94-e1fa189d44f9 ; do
if [[ "$Home_UUIDs" == *"$CONNECTION_UUID"* ]]; then
echo "We're at home!"
else
echo "We're not at home..."
fi
done
¿Hay otros caracteres en $CONNECTION_UUID?
Respuesta2
Finalmente lo solucioné reemplazando la declaración entre paréntesis con
[[ "$Home_UUIDs" =~ "$CONNECTION_UUID" ]]
en lugar de
[[ "$Home_UUIDs" == *"$CONNECTION_UUID"* ]]