我正在尝试从远程sftp位置下载一个,所以我使用下面的脚本。
#!/bin/bash
expect -c "
spawn sftp remoteUser@xx.xx.xx.xx
expect \"password\"
send \"User@123\r\"
interact "
问题在于远程服务器在登录服务器时配置了一些msg配置的信息,所以由于这个密码在此文本出现之前发送到屏幕上。
答案 0 :(得分:2)
试试这个 -
#!/usr/bin/expect
export PASSD="User@123"
expect -c 'spawn sftp user@xxxxxx.com;
expect "*Password: ";
send "$env(PASSD)\r";
expect "sftp>";
send "cd /home/user \r";
expect "sftp>";
send "get file.txt \r";
expect "sftp>";
send "bye \r"'