에서 문자열을 비교. parameters.txt
파일의 각 행에 대한 구분자로 :
을 사용하고 의 왼쪽에있는 내용을 var1
에 저장하고 :
의 오른쪽에있는 내용을 var2
에 저장합니다. sheet_name
이 저장되지 않은 경우 var1
이 sheet_name
이고 not matched
이 저장 될 때 matched
을 인쇄하고 싶습니다. 내가 잘못 뭐하는 거지내가 내용 다음과 같다 <code>parameters.txt</code>라는 이름의 파일이 쉘 스크립트
filename=parameters.txt
IFS=$'\n' # make newlines the only separator
for j in `cat $filename`
do
var1=${j%:*} # stores text before :
var2=${j#*:} # stores text after :
if [ “$var1” == “sheet_name” ]; then
echo ‘matched’
else
echo “not matched“
fi
done
: 다음에 관계없이 항상 무엇 var1
매장 matched
를 인쇄 내 코드는? 친절하게 도와주세요.
여기서 'for' 루프를 사용하지 마십시오. http://mywiki.wooledge.org/BashFAQ/001 – chepner
몇 가지 문제를 해결하려면 http://www.shellcheck.net을 통해 코드를 실행해야합니다. 또한 [행을 읽지 마십시오] (http://mywiki.wooledge.org/DontReadLinesWithFor)와 [배쉬 FAQ 001] (http://mywiki.wooledge.org/BashFAQ/001)을 읽고 올바르게하는 법을보십시오. 라인 단위/필드 단위 데이터를 읽습니다. –
또한 따옴표는 "스마트"/ 유니 코드 따옴표이며 쉘 스크립트에서 원하는 것은 아닙니다. 표준 ASCII 큰 따옴표와 작은 따옴표를 사용하고 있는지 확인하십시오. –