Cómo imprimir la condición verdadera si en el script de Shell

Cómo imprimir la condición verdadera si en el script de Shell

Estoy escribiendo un script para cambiar algunas configuraciones según la ubicación y para ello seleccioné el nombre de host como punto de referencia. Mi objetivo es que, si la condición de mi nombre de host se cumple, haga esto. Para esto, estoy escribiendo un script de shell que compara algunas cosas en la declaración if, quiero imprimir la condición if exitosa pero no encuentro una manera de hacerlo. Aquí está mi guión.

#!/bin/bash
location1=india
location2=eurpoe
location3=asia
location4=usa
location5=africa
location6=tokyo
echo "Checking Hostname"
hstname=`hostname | cut -f1 -d'-'`
echo "This is the $hstname"
#if [ $hstname == $location1 ] && [ $hstname == $location2 ] && [ $hstname == $location3 ] && [ $hstname == $location4 ] && [ $hstname == $location5 ] && [ $hstname == $location6 ] ;
if [[ ( $hstname == $location1 ) || ( $hstname == $location2 ) || ( $hstname == $location3 ) || ( $hstname == $location4 ) || ( $hstname == $location5 ) || ( $hstname == $location6 ) ]] ;
then
    echo "This is part of   " ;##Here i want to print true condition of above if statement##   
else
    echo "Please set Proper Hostname location wise." ;
fi

No puedo encontrar una manera de imprimir la condición que se cumplió en la declaración if.

Respuesta1

Almacene las ubicaciones válidas en una sola variable y recorra sobre ella:

VALID_LOCATIONS="india europe asia usa africa tokyo"
hstname=`hostname | cut -f1 -d'-'`
for LOC in $VALID_LOCATIONS
do
    if [[ $LOC == $hstname ]]; then
        LOCATION=$LOC
    fi
done
if [[ $LOCATION == "" ]]; then
    echo "Please set Proper Hostname location wise."
else
    echo "This is part of $LOCATION"
fi

Resultado:

This is part of europe

Respuesta2

Puedes usar

if [ $hstname == $location1 ] || [ $hstname == $location2 ] || [ $hstname == $location3 ] ; then

¡¡Pero no te olvides de los espacios!!

Quizás debería ser mejor usar "case" con todas las ubicaciones en la condición.

información relacionada