我有三个环境:测试、开发和生产。当用户进入测试时,应该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 了解更多信息。