【发布时间】:2018-01-12 20:11:40
【问题描述】:
我有一个 shell 脚本,在其中我执行SFTP 并将我的文件传输到远程主机。
我可以将文件传输到远程主机,但是我的父shell脚本代码,一旦SFTP完成,就无法执行。
#!/bin/bash
set -e
echo "Starting SFTP..."
cd "/Users/myuser/myfolder"
sftp -o "StrictHostKeyChecking no" admin@myserver.myorg.com << END_SCRIPT
cd /some/folder/on/remote/host
put -r .
bye
END_SCRIPT
echo "Done."
我没有看到“完成”。在控制台上打印。有什么线索吗?
【问题讨论】:
-
你的脚本真的像问题中出现的那样缩进吗?
-
是的。我是新来的。我不应该缩进吗?
-
取消缩进(或只是 END_SCRIPT 行)肯定会解决问题
-
酷,它解决了这个问题 :) 谢谢。但是,原因是什么?
-
或者,如果缩进是通过制表符,你可以使用
<<- END_SCRIPT语法(注意破折号)