쉘 스크립트 구문 오류

쉘 스크립트 구문 오류

방금 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

관련 정보