문자열이 공백이 아니거나 비어 있지 않은지 확인해야하는 다음 쉘 스크립트를 실행하려고합니다. 그러나, 나는 언급 한 3 개의 문자열 모두에 대해 동일한 출력을 얻고 있습니다. "[["구문을 사용했지만 아무 소용이 없습니다.문자열이 공백이 아니거나 쉘 스크립트에 공백이 있는지 확인하십시오.
str="Hello World"
str2=" "
str3=""
if [ ! -z "$str" -a "$str"!=" " ]; then
echo "Str is not null or space"
fi
if [ ! -z "$str2" -a "$str2"!=" " ]; then
echo "Str2 is not null or space"
fi
if [ ! -z "$str3" -a "$str3"!=" " ]; then
echo "Str3 is not null or space"
fi
나는 다음과 같은 출력을 얻고있다 : 여기
내 코드 쉘에서 빈 문자열을 확인하기위한# ./checkCond.sh
Str is not null or space
Str2 is not null or space
고마워. 작동한다. 그러나 비교가하는 반면 할당이 공간을 사용하지 않는 이유가 궁금합니다. –
^^ 구문입니다. 명령 줄의 첫 번째 단어는 명령이고 후속 단어는 인수입니다. 'var = value [command [args]]'는 변수에 값이 할당되는 구문입니다. 비교를 위해,'['('/'/ usr/bin/[')는 명령이고 & var1,! = & var2는 3 개의 별도의 인수가 필요합니다. var1! = var2는 단일 인수입니다. – anishsane
@anishsane 세부 사항을 고맙게 생각합니다. 지금 받으십시오. =) –