编写脚本以使用指定文本响应提示

问题描述 投票:0回答:1

我正在编写一个脚本,当脚本运行时,它会自动捕获屏幕截图并触发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

我正在尝试在给出提示后自动输入用户名和密码,以便脚本成功

在给出每个提示后,文本将是“用户名”和“密码”。

我对终端和脚本完全陌生,只是在业余时间玩玩,请原谅这里任何不正确的地方,感谢任何帮助和教育!

macos unix ftp terminal prompt
1个回答
0
投票

通用解决方案是

expect
命令

但对于你的任务来说,这有点矫枉过正了。


ftp
从标准输入读取命令。

所以就这样做:

ftp -n < command.txt

-n
可防止自动提示输入用户名/密码。我们使用下面的
user
命令明确提供这些。

commands.txt
文件将如下所示:

open host
user user password
put /path
bye
© www.soinside.com 2019 - 2024. All rights reserved.