구문 오류: 잘못된 산술 연산자('.c' 태그가 붙은 오류)

구문 오류: 잘못된 산술 연산자('.c' 태그가 붙은 오류)

현재 작업 디렉토리에 "file1.c" 파일이 있는지 테스트하려고 합니다. 테스트 명령에 무슨 문제가 있습니까? 명령을 이해했다고 생각했는데, Bourne 쉘에 내가 모르는 뭔가 잘못된 것이 있었나요?

#! /bin/sh
NAME=$1
if((test -e "$NAME"));then
echo File $NAME present
else
echo File $NAME not present
fi

답변1

대괄호는 필요하지 않으며 test그 자체로 충분합니다.

if test -e "$NAME"; then

(())산술 비교 연산 에 사용됩니다 .

testcommand 와 동의어 [이므로 다음을 사용할 수 있습니다.

if [ -e "$NAME" ]; then

또한.

키워드가 포함된 쉘도 있습니다 [[:

if [[ -e "$NAME" ]]; then

관련 정보