"[(테스트) 문에 인수가 너무 많습니다."

"[(테스트) 문에 인수가 너무 많습니다."

이것은 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 ))

관련 정보