파일 끝 오류가 계속 발생합니다. 코드를 수동으로 확인하고 여러 온라인 bash 검사기를 사용해 보았습니다. 누구든지 도와줄 수 있나요?

파일 끝 오류가 계속 발생합니다. 코드를 수동으로 확인하고 여러 온라인 bash 검사기를 사용해 보았습니다. 누구든지 도와줄 수 있나요?

저는 Tomcat 서버에 웹 앱을 자동으로 배포하기 위해 이 bash 스크립트를 작성했습니다. 예상치 못한 파일 끝 오류가 계속 발생하지만 코드는 괜찮은 것 같습니다. 또한 여러 온라인 bash 구문 검사기를 사용해 보았지만 아무런 문제도 발견하지 못했습니다.

Ubuntu 20.04 LTS Hyper-V VM을 사용하고 있습니다.

Bash 코드는 다음과 같습니다.

#!/bin/bash
CURRENT_DIRECTORY_PATH="$PWD"
PROPS_PATH=$CURRENT_DIRECTORY_PATH/iiq_auto_deployment.properties
certsIIQ_PATH=$CURRENT_DIRECTORY_PATH/certsIIQ
TOMCAT_PATH=$(grep TOMCAT_PATH "$PROPS_PATH" | cut -d= -f2)
WAR_PATH=$(grep WAR_PATH "$PROPS_PATH" | cut -d= -f2)
SERVICE_PATH=$(grep SERVICE_PATH "$PROPS_PATH" | cut -d= -f2)
BACKUP_PATH=$(grep BACKUP_PATH "$PROPS_PATH" | cut -d= -f2)
BACKUP_IIQ=$(grep BACKUP_IIQ "$PROPS_PATH" | cut -d= -f2)
BACKUP_WAR=$(grep BACKUP_WAR "$PROPS_PATH" | cut -d= -f2)
launchIIQConsole=$(grep launchIIQConsole "$PROPS_PATH" | cut -d= -f2)
date=$(date +%d-%m-%Y)
FILECMD_IMPORT=$CURRENT_DIRECTORY_PATH/import_sp_init_custom.txt
IIQPROPERTIES_FILE=/home/centos/Desktop #a enlever
# Check if the passenc file already exists
if [ ! -f "$certsIIQ_PATH/.passenc" ]
then
    # Read user's username and password
    read -r -s -p "Username: " username
    read -r -s -p "Password: " password

    # Generate private key and public key to encrypt/decrypt password
    mkdir "$certsIIQ_PATH"
    sudo openssl genrsa -out "$certsIIQ_PATH"/passwordPrivKey.pem 2048
    sudo openssl rsa -in "$certsIIQ_PATH"/passwordPrivKey.pem -text -noout
    sudo openssl rsa -in "$certsIIQ_PATH"/passwordPrivKey.pem -pubout -out "$certsIIQ_PATH"/passwordPubKey.pem
    sudo openssl rsa -in "$certsIIQ_PATH"/passwordPubKey.pem -pubin -text -noout
    sudo chmod 400 "$certsIIQ_PATH"/passwordPrivKey.pem


    # Save username and password inside a file and encrypt it
    echo "$password" > "$certsIIQ_PATH"/.pass
    echo "$username" > "$certsIIQ_PATH"/.username
    sudo chmod 400 "$certsIIQ_PATH"/.pass
    sudo openssl rsautl -encrypt -inkey "$certsIIQ_PATH"/passwordPubKey.pem -pubin -in "$certsIIQ_PATH"/.pass -out "$certsIIQ_PATH"/.passenc
    rm -f "$certsIIQ_PATH"/.pass    
fi
if [ ! -d "$BACKUP_PATH" ]
then
    mkdir "$BACKUP_PATH"
fi
if [ ! -d "$BACKUP_IIQ" ]
then
    mkdir "$BACKUP_IIQ"
fi
if [ ! -d "$BACKUP_WAR" ]
then
    mkdir "$BACKUP_WAR"
fi
if [ -d "$TOMCAT_PATH" ]
then
    if [ -f "$WAR_PATH" ]
    then
        if [ -f "$SERVICE_PATH" ]
        then
            sudo systemctl stop tomcat
            echo "Le service Apache Tomcat s'est arrete correctement."
            sleep 1.5
            echo "Sauvagarde du dossier IdentityIQ actuel..."
            sleep 1
            sudo mv "$TOMCAT_PATH"/webapps/identityiq "$BACKUP_IIQ"/identityiq.backup"$date"
            echo "Decompression du fichier WAR..."
            sleep 1.5
            sudo unzip -o "$WAR_PATH" -d "$TOMCAT_PATH"/webapps/identityiq
            echo "Decompression du fichier WAR terminee."
            sudo cp $IIQPROPERTIES_FILE/iiq.properties "$TOMCAT_PATH"/webapps/identityiq/WEB-INF/classes #a enlever
            if [ -f "$TOMCAT_PATH/webapps/identityiq/WEB-INF/lib/mssql-jdbc-10.2.1.jre17.jar" ]
            then
                sudo rm "$TOMCAT_PATH"/webapps/identityiq/WEB-INF/lib/mssql-jdbc-10.2.1.jre17.jar 
            fi
            if [ "$launchIIQConsole" == true ]
            then
                if [ ! -f "$FILECMD_IMPORT" ]
                then
                    echo "Creation du fichier temporaire..."
                    echo "import sp.init-custom.xml">"$FILECMD_IMPORT"
                fi
                username=$(cat "$certsIIQ_PATH"/.username)
                password=$(sudo openssl rsautl -decrypt -inkey"$certsIIQ_PATH"/passwordPrivKey.pem -in "$certsIIQ_PATH"/.passenc)
                sudo chmod +x "$TOMCAT_PATH"/webapps/identityiq/WEB-INF/bin/iiq
                echo "IIQ Console is launched!"
                cd "$TOMCAT_PATH"/webapps/identityiq/WEB-INF/bin/ && ./iiq console -u "$username" -p "$password" < "$FILECMD_IMPORT"
            fi
            sudo systemctl start tomcat
            echo "Le service Apache Tomcat a demarre correctement."
            sudo mv "$WAR_PATH" "$BACKUP_WAR"/identityiq.war"$date"
            if [ -f "$FILECMD_IMPORT" ] 
            then
                rm "$FILECMD_IMPORT" 
            fi
            sudo find "$BACKUP_IIQ" -mtime +1 -exec rm -rf {} \;
            sudo find "$BACKUP_WAR" -mtime +1 -exec rm -rf {} \;
            echo "Old files deleted successfully."
        else
            echo "Le fichier $SERVICE_PATH n'existe pas."
        fi
    else
        echo "Le fichier $WAR_PATH n'existe pas."
    fi
else
    echo "Le repertoire $TOMCAT_PATH n'existe pas."
fi

누구든지 도움을 주시면 정말 감사하겠습니다. 감사해요!

관련 정보