unix 编写脚本以响应具有指定文本的提示

m3eecexj  于 5个月前  发布在  Unix
关注(0)|答案(1)|浏览(62)

我写了一个脚本,它将自动捕获屏幕截图,并触发iSight采取静止的照片时,脚本运行,然后将其上传到FTP。一切都是完美的其他然后一件事,我的FTP需要输入用户名和密码时,提示(后两个图像被捕获)
这就是我所拥有的:

echo “GOLDENEYE ACTIVATED….”
screencapture -x screen.jpg
imagesnap Mugshot.jpg
ftp <YourServerHere>

字符串
终端响应:

Connected to <YourServerHere>


现在,当出现以下内容时,必须输入“”:

220 Welcome to <ServerDomain>, FTP server standing by ...
Name (<ServerName>.<DomainName>.:<Name>): <Type UserName Here - Hit Enter>


而且,密码将在成功输入有效的密码后输入:

331 Hello <UserName>, your FTP account password is required:
Password: <Type Your Password Here - Hit Enter>


输入正确的凭据后,终端将响应:

230-Login successful, your current directory is /
230 0 Kbytes used (0%) - authorized: 7340032 Kb
Remote system type is UNIX.
Using binary mode to transfer files.


然后,上传图片:

ftp> put /Mugshot.jpeg

ftp> put /Screen.jpeg


我试图自动用户名和密码输入后,提示,为了使脚本成功
文本将是在给出每个提示之后输入的“用户名”和“密码”。
我完全是新的终端和脚本,只是在我的业余时间玩,请原谅任何不正确的地方,感谢任何帮助和教育!

ohfgkhjo

ohfgkhjo1#

一般的解决方案是expect command。“
但对于你的任务来说,这是一个矫枉过正。
ftp从标准输入读取命令。
所以才这么做:

ftp -n < command.txt

字符串
-n防止自动提示输入用户名/密码。我们使用下面的user命令显式提供这些提示。
commands.txt文件如下所示:

open host
user user password
put /path
bye

相关问题