Bash 스크립팅에 ']'누락 [닫힘]


82

오류 ./test.sh : line 13 : [: missing`] 'in the file test.sh 괄호와 -a와 같은 다른 옵션을 사용하거나 파일 p1의 크기를 확인했지만 오류는 다음과 같습니다. 항상 거기에 있고 else 문은 주어진 입력에 관계없이 항상 실행됩니다. 13 행에 있지만 도움이되지 않았습니다.

test.sh

#!/bin/bash
echo "Enter app name"
read y
$y &
top -b -n 1 > topLog.log
#-w checks for the whole word not and sub string from that word
grep -w "$y" topLog.log > p1
#-s option checks if the file p1 is present or not
if [ -s "p1"];  #line 13
then 
    echo "Successful "
else
    echo "Unsuccessful"
fi
rm p1

나는 bash 스크립팅을 처음 사용하므로 어리석은 실수가 있으면 실례합니다.

답변:



40

&&같은 단일 대괄호 안에 연산자 를 사용하려고 할 때이 오류가 발생했습니다 [ ... && ... ]. 로 전환해야했습니다 [[ ... && ... ]].


나는 또한 &&를 if와 함께 사용하고 있었고 그것은 내 문제를 해결했습니다.
Praveen Patel

나는 == 연산자를 사용하고 있었고 동일한 문제가 발생하여 이중 대괄호로 전환하는 것이 도움이되었습니다.
Vishnu Nair



0

Windows에서 스크립트를 작성하고 Linux 시스템에서 실행하고 싶은데 코드에 실수가 없다고 확신하는 경우 Linux 시스템에 dos2unix 를 설치 하고 dos2unix yourscript.sh. 그런 다음 스크립트를 실행하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.