假设我的服务器的密码是Abcd$1234
我正在尝试使用 shell 脚本中的以下内容将文件从其他服务器 ftp 到我的服务器
ftp -inv (IP) << EOF
user Username Abcd$1234
"lines to ftp file"
bye
我无法进行 ftp。我尝试将密码替换为Abcd\$1234
和 ,"Abcd\$1234"
但没有用。
但我可以在没有 ftp 的情况下登录到我的服务器(只是为了验证密码是否有效)
任何人都可以帮忙吗?我想$
不惜一切代价在我的密码中使用
答案1
这里的文件。
cat <<EOF
后面是几行文本,后面是EOF
新行上的文字字符串,不缩进。 EOF 之间的部分作为标准输入传递给命令。如果“EOF”被“引用”,则不会进行替换;否则他们就是。请参阅 <<- 了解缩进类型。
所以..
ftp -inv (IP) <<'EOF'
user Username Abcd$1234
"lines to ftp file"
bye
EOF
应该有效并且将被$
视为字面意思$
。它不会将其作为变量来引用。
答案2
而不是这里的文档,尝试这样的事情:
pw='Abcd$1234'
exec 6>&1
ftp -nvi >&6 2>&6 |&
print -p open Server
print -p user User $pw
"lines to ftp file"
print -p bye