シェルスクリプト構文エラー

シェルスクリプト構文エラー

私は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

関連情報