0
좋아, 이건 정말 간단한 일이지만, 2-3 시간이 지나면 왜 작동하지 않고 아무데도 나가지 않았어.Bash에서 배열의 문자열 비교 Scripting
나는 Bash/Shell-Script 프로그램을 만들려고 노력 중이며 그 중 한 지점에서 문자열 배열의 내용을 검사하여 문자열이 비어 있는지 확인하려고합니다. 내 코드는 다음과 같습니다 :
#Display any words the user corrected, and what he/she corrected it with (ignore blank corrections)
printf "\n\n" "MISPELLED/CORRECTIONS"
for ((i=0; i<${#words[*]}; i++)); do
if [!"${corrections[$i]}"=""]; then //this is line 25
printf "\n ${words[$i]} ${corrections[$i]}"
fi
done
내가 사용하는 방법은 긍정적이지 않습니다! 운영자는 합법적 이었지만, 또는 그것없이, 나는 런타임 오류 얻을 :
을 ./test : 25 행 : [=] :
를 찾을 수없는 명령 나는 필요하다면 나머지 코드를 게시 할 수 있습니다 나는 대부분 "수정"배열이 문자열로 올바르게 채워 졌다고 확신하지만.
당신은'if'에'['과 사물의 나머지 부분 사이에 띄어쓰기를해야합니다. –
가! 나는 적어도 한 번 시도 했었다는 것을 맹세 할 수 있었다! 그게 전부 였어, 고마워! – aredscout
비어있는 경우에는'-z'를 사용하고 비어 있지 않은 경우에는'-n'을 사용하는 것이 더 좋습니다. string이 비어 있다면 (공백)'[-z "$ {corrects [$ i]}"]'가 참이된다. 'if [-n "$ {connections [$ i]}"]'문자열이 비어 있지 않으면 (비어 있지 않은 경우) true가됩니다. 배열 요소에 공백이없는 경우 (예 : – alvits