使用 shell 脚本与程序交互

Using a shell script to interact with programs

我需要使用 shell 脚本通过 FTP 上传文件。 我可以通过脚本与 FTP 交互吗?我的脚本在 http://pastebin.com/A76fsaM3

cd MyLocalUploadDir
ftp
open ftp.server.com
myusername
mypassword
put LocalIteam.TXT

这行得通吗?在 shell 脚本中是否有另一种与 FTP 交互的方法?感谢您的帮助!

有关与 FTP 交互的信息,请参阅 http://www.tldp.org/HOWTO/FTP-3.html

您需要使用 here-doc。否则,ftp 之后的行将不会用作程序的输入。

cd MyLocalUploadDir
ftp <<EOF
open ftp.server.com
myusername
mypassword
put LocalIteam.TXT
quit
EOF

您还可以使用 .netrc 文件避免将用户名和密码放入脚本中。

而不是使用 ftp 程序,您可以使用 curl 在一行中完成。

curl --upload-file MyLocalUploadDir/LocalIteam.TXT 'ftp://myusername:mypassword@ftp.server.com/'

您还可以使用 --netrc 选项 curl 告诉它从 .netrc 文件中获取用户名和密码。