错误消息 - dummy.sh:第 29 行:语法错误:意外的文件结尾

错误消息 - dummy.sh:第 29 行:语法错误:意外的文件结尾

我有三个环境:测试、开发和生产。当用户进入测试时,应该ftp测试主机和ftp文件。开发和生产的情况相同。我刚刚尝试进行测试,但收到错误:Error message - dummy.sh: line 29: syntax error: unexpected end of file

!/bin/bash
while :
do
read -r INPUT_STRING
case $INPUT_STRING in
        test)
               echo "Please enter id no : "
                                read -r input_variable
                                if [[ ${#input_variable} -ne "7" ]]
                                then
                                echo "Please check the id no given"
                                exit 1
                                fi
                                HOST=xxx
                                USER=xxx
                                PASSWORD=xxx
                                ^Iftp -inv $HOST <<- EOF
                                user $USER $PASSWORD
                                cd /work/path//$input_variable/to/destination/
                                mput x.csv

^IEOF
;;
esac
done

答案1

当你想使用缩进时使用<<-EOF而不是。<<EOF然后按制表符缩进文本。

最后,您需要EOF标记此处文档的结尾。

你的代码块将是这样的:

    ftp -inv $HOST <<-EOF
            user $USER $PASSWORD
            cd /work/test//$input_variable/path/to destination/
            mput x.csv
    EOF

也可以看看http://www.tldp.org/LDP/abs/html/here-docs.html,示例 19.4 了解更多信息。

相关内容