我正在尝试运行带有期望的shell脚本,发送用于SFTP自动化的命令。但是,我最后遇到一个错误“缺少大括号”。
请您帮忙,我做错了什么。问题似乎在于密码带有特殊字符。请参见下面。
#!/bin/bash
#CONSTANTS
#LOGGING
LOGFILE="/tmp/logger.log"
#SOURCE INFO
SOURCE_FILE_NAME="*.csv"
#SFTP INFO
FTP_SERVER="abc.com"
FTP_USER="username"
FTP_PWD='[_9G)Wr2h4~ws{u'
FTP_PORT=22
FTP_DROP_DIR="/"
FTP_KEY="privatekey.ppk"
echo "Uploading Files......"
expect <<END #> $LOGFILE
send "$(date)\r";
spawn sftp -oIdentityFile="$FTP_KEY" "$FTP_USER@$FTP_SERVER"
expect "*password: "
send {[_9G)Wr2h4~ws{u\r}"
expect "sftp> "
send "ls -ltr\r"
expect "sftp> "
# send "mget $SOURCE_FILE_NAME\r"
# expect -timeout -1 "sftp> "
send "quit\r"
send "$(date)\r";
END
echo "--------------- END -------------"
这是我遇到的错误。
Uploading Files......
spawn sftp -oIdentityFile="privatekey.ppk" username@abc.com
Connecting to abc.com...
username@abc.com's password: missing close-brace
while executing
"send {[_9G)Wr2h4~ws{u\r}"
expect "sftp> "
send "ls -ltr\r"
expect "sftp> "
# send "mget *.csv..."
--------------- END -------------
答案 0 :(得分:1)
没关系。我相信转义所有特殊字符似乎是可行的。
.exampleDiv {
height:100vh;
}