내 if bash 스크립트가 항상 실행을 중단합니다.

내 if bash 스크립트가 항상 실행을 중단합니다.

폴더의 파일 이름을 바꾸는 스크립트를 만들고 있습니다. 파일의 새 이름은 구성 파일에 있습니다. 이름을 바꾸려는 파일이 구성 파일의 현재 파일과 일치하는지 확인해야 합니다. 내 코드는 다음과 같습니다

#!/bin/bash

. conf.cfg

number_of_files=`echo "$filename"|wc -l`

#echo "$number_of_files"
existing_files=`find iputemp/ `
echo "$existing_files"

iterations=`echo "$existing_files"|wc -l`

#echo "$filename"

for x in `seq 1 $iterations`; do
        current_file_name=`echo "$filename"|sed -n "$x"p`
        echo "$current_file_name"
        echo "$x"
        for z in `seq 1 $number_of_files`; do
                this_file=$(echo "$existing_files"|sed -n ${z}p|cut -d '/' -f2)
                echo "$z"
                if [[ ${current_file_name} == *${this_file}* ]]; then
                        echo "EXIST"
                        mv iputemp/${tile} ${current_file_name}
                        sleep 0.5
                        break
                fi
        done
done

내 문제는 두 번째 루프가 항상 실행 중에 중단된다는 것입니다. 이유를 모르겠습니다. 누구든지 나를 도와줄 수 있습니까?

답변1

테스트 문을 따옴표로 묶어야 합니다.

if [[ "${current_file_name}" == "*${this_file}*" ]];

답변2

나는 대괄호를 제거 할 수 있다고 생각합니다.

if [[ "$current_file_name" = "$this_file" ]]; then

또한 내 경험으로는 등호만 사용하는 것이 더 안정적입니다.

관련 정보