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