我需要在脚本中scp
不使用命令的情况下执行命令。expect
如何使用带密码的scp?我尝试过以下代码。
HOST=lnx1
USERNAME=user
PASSWORD=pwd
PATH=/sample/data/
FILE=$1
scp $FILE $USERNAME:'$PASSWORD'@$HOST:$PATH
sshpass -p '$PASSWORD' scp $FILE $USERNAME@:$PATH
错误信息:
scp: command not found
sshpass: command not found
如何实现这个东西呢?
答案1
您已将PATH
变量设置为/sample/data
。变量之前的内容PATH
已被覆盖。因此,您的脚本会查找/sample/data
和scp
,sshpass
但无法在那里找到它们,并给出您所看到的错误消息。
尝试将PATH
变量名称更改为不同的名称,例如:
REMOTE_PATH=/sample/data/
scp $FILE $USERNAME:'$PASSWORD'@$HOST:$REMOTE_PATH
sshpass -p '$PASSWORD' scp $FILE $USERNAME@:$REMOTE_PATH
如果这不起作用,请尝试将完整路径名放入scp
脚本sshpass
中。