![else 조건이 오류를 반환하는 경우 Ubuntu bash [: -lt: 인수가 필요함](https://rvso.com/image/1083729/else%20%EC%A1%B0%EA%B1%B4%EC%9D%B4%20%EC%98%A4%EB%A5%98%EB%A5%BC%20%EB%B0%98%ED%99%98%ED%95%98%EB%8A%94%20%EA%B2%BD%EC%9A%B0%20Ubuntu%20bash%20%5B%3A%20-lt%3A%20%EC%9D%B8%EC%88%98%EA%B0%80%20%ED%95%84%EC%9A%94%ED%95%A8.png)
입력된 판매가와 원가에 따른 손익 여부를 알아보기 위해 다음 스크립트를 작성하고 있습니다.
echo enter selling price
read sprice
echo enter costprice
read cprice
if [ $sprice -lt $cp ]
then
echo Loss
else
echo Profit
fi
항상 Profit
다음과 같은 오류 코드와 함께 을(를) 반환합니다.
:~/shell$ sh shellb.sh
enter selling price
10
enter costprice
20
shellb.sh: 6: [: -lt: argument expected
Profit
이유는 무엇일까요? 이 문제를 어떻게 해결할 수 있나요?
답변1
라고 표시된 줄에서 읽은 $cp
변수를 변경하십시오 .$cprice
read cprice
echo enter selling price
read sprice
echo enter costprice
read cprice
if [ $sprice -lt $cprice ]
then
echo Loss
else
echo Profit
fi
스크립트는 $sprice
와 동일한 값을 갖는 경우에도 Profit을 반환하므로 $cprice
정확하려면 스크립트에 다음 행을 추가하십시오.
elif [ $sprice -eq $cprice ]
then
echo Break\ even
그래서 결국은 다음과 같습니다.
echo enter selling price
read sprice
echo enter costprice
read cprice
if [ $sprice -lt $cprice ]
then
echo Loss
elif [ $sprice -eq $cprice ]
then
echo Break\ even
else
echo Profit
fi