私はUNIXを学び始めましたが、ここで問題を特定することはできません。エラーを指摘してもらえますか?
age=30
if [[ $age -lt 18 ]]
then
echo "not eligible"
elif [[ $age -gt 18 && $age -lt 60 ]]
echo "eligible"
else
echo "stay home"
fi
exit
答え1
then
スクリプトにはいくつかの問題がありますが、最も緊急の問題は、事後テストが不足していることです。
また、不要なテストを実行しているため、$age -gt 18
さらに論理エラーが発生します。この時点で18未満であることはすでにわかっており、誤って正確に18の場合を$age
省略しています。テストを完全に削除することをお勧めし$age
ます。$age -gt 18
スクリプトはexit
最後に明示的に呼び出す必要はありませんが、#!
上部に適切なシェルインタプリタ(おそらくbash
)を指す -line が必要です。
あなたは見つけることができますhttps://www.shellcheck.net/スクリプトで最も基本的なエラーを見つけるのに便利なウェブサイトです。
#!/bin/bash
age=30
if [[ $age -lt 18 ]]; then
echo 'not eligible'
elif [[ $age -lt 60 ]]; then
echo 'eligible'
else
echo 'stay home'
fi