J'ai le code de vente suivant

#!/bin/sh
echo "hello"
echo "enter the salutation $abc"
read -r abc
if [ "$abc" = "1" ]
then
 echo "Hiiii"
elif [ "$abc" = "2" ]
then
echo "haaaaa"
fi
echo "enter name $xyz"
read -r xyz
if 
if [ "$xyz" = "1" ]
then
 echo "Chris"
elif [ "$xyz" = "2" ]
then
echo "Morris"
fi
echo "you had put salutation as" "$abc"
echo "you entered name as " "$xyz"

J'ai besoin que l'impression finale soit comme

 you had put salutation as Hii
 you entered name as chris

Ce que je reçois c'est

 you had put salutation as 1
 you entered name as 1

De l'aide? Dois-je mentionner la déclaration finale dans la déclaration if elif?

1
Rahul mehta 21 avril 2017 à 09:25

3 réponses

Meilleure réponse

J'utiliserais:

#!/bin/bash

PS3="Enter the salutation>"
select abc in Hiii Haaa; do
    [[ "$abc" ]] && break
done

PS3="Enter name>"
select xyz in Chris Morris; do
    [[ "$xyz" ]] && break
done

echo "you had put salutation as" "$abc"
echo "you entered name as " "$xyz"
0
jm666 21 avril 2017 à 07:53

Les problèmes sont avec vos déclarations d'écho:

echo "Hiiii"
echo "haaaaa"
echo "Chris"
echo "Morris"

Vous imprimez simplement la chaîne mais vous ne la stockez pas dans des variables que vous pouvez afficher comme résultat attendu:

echo "you had put salutation as" "$abc"
echo "you entered name as " "$xyz"

Les valeurs stockées dans abc et xyz telles que vous les avez entrées seront 1 et 1. Utilisez des variables pour stocker les valeurs et les afficher si nécessaire. Comme, remplacez les échos par les suivants:

disp_sal="Hiiii" disp_sal="haaaaa"

disp_name="Chris" disp_name="Morris"

Aussi,

echo "you had put salutation as" "$disp_sal"
echo "you entered name as " "$disp_name"
1
Liju Thomas 21 avril 2017 à 06:54

Essaye ça;

#!/bin/sh
    echo "hello"
    echo "enter the salutation $abc"

    read -r abc

    if [ "$abc" = "1" ]
    then
        x="Hiiii"
    elif [ "$abc" = "2" ]
    then
        x="haaaaa"
    fi

    echo "enter name $xyz"

    read -r xyz

    if [ "$xyz" = "1" ]
    then
         y="Chris"
    elif [ "$xyz" = "2" ]
    then
         y="Morris"
    fi
    echo "you had put salutation as" "$x"
    echo "you entered name as " "$y"
0
KOUSIK MANDAL 21 avril 2017 à 06:36