gnuwin32 프로그램은 무엇을합니까 : [.exe는?
문제
gnuwin32/bin 디렉토리를 살펴보면 홀수 프로그램 파일이 있습니다. [.exe
문서 Gnuwin32.sourceforge.net 또는 Google 검색에서 찾을 수 없었습니다.
$ [
[: missing `]'
$
그래서 나는 그것을 매개 변수로 주었다.
$ [ ]
$
불평하지 않았기 때문에 올바른 길을 가고 있다고 생각했습니다. 나는 시도했다 :
$ [ hello ]
다시 한 번 불만이 없습니다. 그래서 산술 표현을 시도했습니다.
$ [ 1 + 1 ]
[: +: binary operator expected
$
Prefix & Postfix 표기법을 포함하여 다양한 조합을 시도했지만 아무것도 작동하지 않았습니다. 이 일은 무엇을합니까?
해결책
평가하는 데 사용됩니다 가정 어구 표현.
그것은 (아마도 Symlink to?)와 같습니다. test
실행 파일.
인력은입니다 여기.
이것을 많은 배쉬 스크립트에서 볼 수 있습니다.
if [ "$LOGNAME" = "scott" ]
then
echo "Logged in as Scott"
else
echo "incorrect user"
fi
재미있는 것은, [
Bash 언어의 일부가 아니며 실제로 'IF'가 반환 코드를 사용하는 실행 파일입니다. 이것이 바로 이후의 공간이 이유입니다 [
그리고 첫 번째 주장은 필수입니다. 생략되면 스크립트는 실행하려고합니다. ["$LOGNAME"
그리고 실패.
산술 작업을 수행 할 수 없습니다 expr
이를 위해 (참조 여기). 그러나 다양한 파일 속성 (존재합니까? 어떤 유형입니까? 등)를 테스트하고 문자열과 숫자에 비교 연산자를 사용 할 수 있습니다.
다른 팁
test a
==
[ a ]
설탕 일뿐입니다
편집 : 명확히하기 위해, 그것은 조건부 구문입니다. 예 : [ "a"= "a"]
이미 언급 한 또 다른 대답은 그것이 동일하다고 언급했습니다 test
. Bash에서는 또한 내장형이므로 도움을받을 수 있습니다. help
내장 (help test
).