1. ホーム
  2. bash

[解決済み】シェルスクリプトで整数式が期待されるエラーが発生する

2022-01-23 04:25:01

質問

シェルスクリプトの初心者なので質問させてください。このコードで何が間違っているのでしょうか?

#!/bin/bash
echo " Write in your age: "
read age
if [ "$age" -le "7"] -o [ "$age" -ge " 65" ]
then
echo " You can walk in for free "
elif [ "$age" -gt "7"] -a [ "$age" -lt "65"]
then
echo " You have to pay for ticket "
fi

このスクリプトを開こうとすると、年齢を尋ねてきて、こう表示されます。

./bilet.sh: line 6: [: 7]: integer expression expected
./bilet.sh: line 9: [: missing `]'

何が間違っているのか全く分かりません。もし誰かがそれを修正する方法を教えてくれたら、私は感謝します。私の下手な英語で申し訳ありませんが、皆さんが私を理解してくれることを願っています。

解決方法を教えてください。

この構文を使用することができます。

#!/bin/bash

echo " Write in your age: "
read age

if [[ "$age" -le 7 || "$age" -ge 65 ]] ; then
    echo " You can walk in for free "
elif [[ "$age" -gt 7 && "$age" -lt 65 ]] ; then
    echo " You have to pay for ticket "
fi