ユーザー入力が「foo」の場合、スクリプトは「foo」または「bar」を印刷してから「bar」を印刷するか、ユーザー入力が「bar」の場合は「foo」を印刷し、そうでない場合は「無効な文字列」を表示しますというスクリプトを生成します。これは私が書いているスクリプトです:
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
私はスクリプティングに初めて触れたのでよく理解していません。
答え1
私はこれがあなたに必要なものだと思います:
#!/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
if...else
ブロックを次のように置き換えることができますcase
(可能なオプションが多すぎる場合に便利です)。
case "$val" in
"$foo")
echo "$bar"
;;
"$bar")
echo "$foo"
;;
*)
echo "Invalid string"
;;
esac