이것은 Linux에서의 첫 번째 "if-else" 스크립트입니다. 오류가 발생합니다
[: 인수가 너무 많습니다.
암호:
n=0
if [ $n % 2 -eq 0 ]
then
echo "even number"
fi
수정하는 방법.
답변1
의 수학 연산은 bash
에서 수행되어야 합니다 arithmetic context
. 현재 구현에서는 [
수학을 수행하지 않는 인수로 "$n", "%" 및 "2"를 제공합니다. 다음은 수학 연산을 수행하는 컨텍스트의 예입니다.
if [ "$((n % 2))" -eq 0 ]
위의 예에서 결과는 $(())
명령으로 표시되기 전에 셸에 의해 확장됩니다 [
. 다음에 대한 호출을 제거하여 이를 단순화할 수 있습니다 [
.
if (( (n % 2) == 0 ))