script para comparar duas strings “foo” e “bar”

0

Vou criar um script que deve imprimir "foo" ou "bar" quando a entrada do usuário for "foo" e depois imprimir "bar" ou quando a entrada do usuário for "bar" e então imprimir "foo", caso contrário mostre "string inválida". Aqui está o script em que estou trabalhando:

foo=$x
bar=$y
val=$val
echo "enter the val = $val "
read $val
if [ "$val" = "$x" ]
then echo "bar"
elif [ "$val" = "$y" ] 
then echo "foo"
else echo "invalid string"
fi

Sou novo em scripts, por isso não sei muito.

    
por eric 02.06.2014 / 09:38

1 resposta

3

Acho que isso é o que você precisa:

#!/bin/bash

foo="foo"
bar="bar"

val=""

read -p "Enter the var: " val 

if [ "$val" == "$foo" ]; then
    echo "$bar"
else
    if [ "$val" == "$bar" ]; then
        echo "$foo"
    else
        echo "Invalid string"
    fi
fi

Você pode substituir o bloco if...else por case (isso é útil quando as opções possíveis são demais):

case "$val" in
    "$foo")
        echo "$bar"
        ;;
    "$bar")
        echo "$foo"
        ;;
    *)
        echo "Invalid string"
        ;;
esac
    
por 02.06.2014 / 09:54