我有以下bash脚本
SFTP工作正常,但回声“备份完成”dosnt工作
#!/bin/sh sftp -b /dev/stdin server <<EOF cd /shares/backup/webserver/ put $bu_PATH$BACKUP_FILE quit EOF echo "Backup done"
任何人都可以帮忙吗?
EOF不在行首。 将您的脚本更改为:
#!/bin/sh sftp -b /dev/stdin server <<EOF cd /shares/backup/webserver/ put $bu_PATH$BACKUP_FILE quit EOF echo "Backup done"
应该使它工作。
你可以用/dev/stdin server来代替,因为后者意味着stdin。
这应该是一个小写的“回声”,而不是“回声”。
您可能只需要将长string回显到命令就可以改善这个过程。 你会消除挂起的文件,以保持这几行:
#! /bin/sh echo "cd /shares/backup/webserver/ put $bu_PATH$BACKUP_FILE quit" | sftp -b - server if test $? -ne 0 then echo Backup Problem exit 1 fi echo 'Backup DONE!' exit 0
请注意,回声线继续在CR的直到发现另一个匹配的报价。