密码中的星号字符-登录失败



我有一个要求,我将对不同的服务器执行sftp,我想通过shell脚本来实现这一点

但是密码有星号(*)字符,因此无法登录。脚本:

host=xxxxx
user=celcom_mnp
passwd='CjX3E$4Q&*B6L'
cd /home/mquser/unicaftp/CMS/batch/OBD/MNP/
test=`find . -maxdepth 1 -type f -name "*.csv" -mmin +1 | awk -F "/" '{print $NF}'`
lftp<<EOF
open sftp://$host
user  $user $passwd
cd /MNP_Autoin
lcd  /home/mquser/unicaftp/CMS/batch/OBD/MNP
mput `echo $test`
EOF
OUT=$?
if [ $OUT -eq 0 ];then
   echo "$test Succesfully transferred" >> /home/mquser/CIFM_STORE/OBD/obdmnplog.txt
else
   echo "Issue with sftp" >> /home/mquser/CIFM_STORE/CEP/PUSH/sftplog.txt
fi
mv $test /home/mquser/CIFM_STORE/OBD/TEMPMNP/

错误信息:

Unknown command `*B6L'.
cd: Login failed: Login incorrect

请帮帮我。提前感谢

问题是&(安培数)。更换

user  $user $passwd

带有

user  $user "$passwd"

尝试使用双引号而不是引号。或者,如果你知道你的密码总是特定的文本,你可以转义特殊字符$&*在它们前面加一个反斜杠。

你可以从谷歌上尝试一些不同的解决方案:Unix堆栈交换

最新更新