if 루프의 데이터 비교 문제

if 루프의 데이터 비교 문제

Bash에는 2개의 변수가 있습니다. 테스트를 통해 그 중 하나는 정수이고 다른 하나는 문자열이라는 것을 알아냈습니다. 나는 그것들을 비교하고 그들이 같은지 확인하고 싶습니다. 다음 옵션을 시도했습니다.

if [ "$a" -eq "$b" ]

if [[ "$a" -eq "$b" ]]

if [ "$a" = "$b" ]

if [[ "$a" = "$b" ]]

문자열 변수를 정수로 변환하려고 합니다.

a=$(($a+0))

하지만 다음과 같은 오류가 발생합니다

+0") 구문 오류: 잘못된 산술 연산자("로 표시된 오류)

그들 중 누구도 예상했던 결과를 얻지 못했습니다. 내가 뭘 잘못하고 있는지 말해주세요.

여러 개의 CSV 파일이 있습니다. 각 파일의 마지막 줄의 두 번째 필드에는 해당 파일의 줄 수가 포함됩니다. 파일에서 줄 수를 가져와서 파일의 실제 줄 수와 비교해야 합니다. 동일하다면 나만 처리하면 됩니다.

ROW_COUNT=`grep -c ^ /tmp/file1.csv` --This is the number

LAST_LINE=`tail -n 1 /tmp/file1.csv`
ACTUAL_ROW_COUNT=`echo ${LAST_LINE} | cut -d "," -f 2` --This is the string

--now i am comparing these two numbers to see if they are same.
if [[ ${ROW_COUNT} == "${ACTUAL_ROW_COUNT}" ]]; then -- Here it is breaking

답변1

다음 if 문이 저에게 효과적입니다.

if [[ ${a} = *"${b}"* ]]; then

답변2

(())를 시도해 보셨나요? 문자보다는 숫자에 사용됩니다. 따라서 비교는 다음과 같습니다.

 if (( "$a" == "$b" ))

이중 ==가 중요하다는 점에 유의하세요.

관련 정보