Bash 스크립트에서 "[3: 명령을 찾을 수 없음"이 나타나는 이유는 무엇입니까? 무엇을 해야 할까요? [복사]

Bash 스크립트에서 "[3: 명령을 찾을 수 없음"이 나타나는 이유는 무엇입니까? 무엇을 해야 할까요? [복사]

임의의 인수를 허용하는 Bash 스크립트를 테스트 중인데 다음과 같은 내용이 표시되는 것을 확인했습니다.

./Var: line 19: [three: command not found

다음은 최소한의 작업 예입니다.

#!/bin/bash
$1 $2 $3

echo "The first argument does $1"
if [$1 >= 2]; then
    echo "$1 has 2 words"
else
    echo "$1 has unknown amount of words"
fi
#^First
echo "The second argument does $2"
if [$2 >= 2]; then
    echo "$2 has 2 words"
else
    echo "$2 has unknown amount of words"
fi
#^Second
echo "The third argument does $3"
if [$3 >= 2]; then
    echo "$3 has 2 words"
fi
#^Third

하지만 스크립트는 계속 실행됩니다. "명령을 찾을 수 없음" 메시지 없이 스크립트를 실행할 수 있는 방법이 있습니까? 아니면 이것이 내 코드의 문제로 인해 발생하는 것입니까?

답변1

사용하려는 명령은 [(또는 test)이 아니라 [whatever이므로 (예를 들어)이어야 합니다.

[ "$3" -ge 2 ]

대신 if is 를 [$3 >= 2]생성합니다 . 또한:[three: command not found$3three

  • 변수를 참조하십시오.
  • [이해하지 못함 >=, 이해 -ge및 기타 옵션;
  • >=어쨌든 리디렉션이므로 명령이 [또는 인지 여부에 관계없이 명령에 도달하지 않습니다 [three. 이제 이라는 파일이 생겼습니다 =.

Bash에 내장되어 있습니다 [. 바라보다 help [, help test.

관련 정보