두 변수가 비어 있는지 확인하는 작은 스크립트를 실행하려고 합니다. 올바른 출력을 얻었지만 닫는 괄호가 누락되었다는 오류도 표시됩니다. 이중 괄호와 괄호를 사용해 보았지만 작동하지 않았습니다.
var=""
non="hi"
if ([ -z "$var"] && [ -z "$non"])
then
echo "both empty"
else
echo "has data"
fi
산출:
line 6: [: missing `]'
has data
답변1
"$non"과 ] 사이에는 공백이 필요하고 ()는 없어야 합니다.
if [ -z "$var" ] && [ -z "$non" ]
답변2
Andy Dalton이 답변에서 말했듯이 사이에 공백을 두어야 합니다."$FEI"및 오른쪽 대괄호]이와 같이:
[ -z "$non" ]
왜 이 작업을 수행해야 하는지에 대한 약간의 동기를 추가하고 싶었습니다. Bash에서 대괄호는 명령입니다.남성 [봐, 여기 설명서가 있어시험명령), 따라서 어떤 명령을 호출하고 있는지 파악하려면 bash의 공간이 필요합니다.