![Bash 스크립트에서 "[3: 명령을 찾을 수 없음"이 나타나는 이유는 무엇입니까? 무엇을 해야 할까요? [복사]](https://linux55.com/image/146705/Bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20%22%5B3%3A%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%B0%BE%EC%9D%84%20%EC%88%98%20%EC%97%86%EC%9D%8C%22%EC%9D%B4%20%EB%82%98%ED%83%80%EB%82%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%EB%AC%B4%EC%97%87%EC%9D%84%20%ED%95%B4%EC%95%BC%20%ED%95%A0%EA%B9%8C%EC%9A%94%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
임의의 인수를 허용하는 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
$3
three
- 변수를 참조하십시오.
[
이해하지 못함>=
, 이해-ge
및 기타 옵션;>=
어쨌든 리디렉션이므로 명령이[
또는 인지 여부에 관계없이 명령에 도달하지 않습니다[three
. 이제 이라는 파일이 생겼습니다=
.
Bash에 내장되어 있습니다 [
. 바라보다 help [
, help test
.