如何在脚本中,输入交互会话是所需的信息

如何在脚本中,输入交互会话是所需的信息

如用FTP登陆其他服务器:
[oracle@login oracle]$ ftp 172.16.1.11
Connected to 172.16.1.11 (172.16.1.11).
220 ready, dude (vsFTPd 1.1.0: beat me, break me)
Name (172.16.1.11racle): hrms
331 Please specify the password.
Password:******
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls

现在想写一shell脚本实现其功能,但是其中红色地方的帐号和密码需要交互式输入,不知道怎么实现呢???

谢谢拉      
For ftp you can try like this:
复制内容到剪贴板
代码:
[color=blue]-(dearvoid@LinuxEden:tty3)-(~)-
[17783 0] $ [/color]ftp -i -n << END
> open ftp.gnu.org
> user anonymous password
> pwd
> ls
> END
257 "/"
lrwxrwxrwx    1 0        0               8 Aug 20  2004 CRYPTO.README -> .message
-rw-r--r--    1 0        0           17864 Oct 23  2003 MISSING-FILES
-rw-r--r--    2 0        0            4178 Aug 13  2003 MISSING-FILES.README
-rw-r--r--    1 0        0           17992 Sep 18  2003 MISSING-FILES~
-rw-r--r--    1 0        0            2103 Aug 16  2002 README
-rw-r--r--    1 0        0            1516 Aug 18  2000 README.~1~
-rw-r--r--    1 0        0          405121 Oct 23  2003 before-2003-08-01.md5sums.asc
drwxrwxr-x  264 0        1003         8192 Jun 21 21:50 gnu
drwxrwxr-x    3 0        1003         4096 Sep 23  2004 gnu+linux-distros
-rw-r--r--    1 0        0              90 Feb 16  1993 lpf.README
-rw-r--r--    1 0        0          312360 Aug 15 10:31 ls-lrRt.txt.gz
drwxr-xr-x    3 0        0            4096 Apr 20  2005 mirrors
lrwxrwxrwx    1 0        0              11 Apr 15  2004 non-gnu -> gnu/non-gnu
drwxr-xr-x   29 0        0            4096 Apr 03 21:47 old-gnu
lrwxrwxrwx    1 0        0               1 Aug 05  2003 pub -> .
drwxr-xr-x    7 0        0            4096 Jan 15  2004 savannah
drwxr-xr-x    2 0        0            4096 Aug 02  2003 third-party
-rw-r--r--    1 0        0             954 Aug 13  2003 welcome.msg
-rw-r--r--    1 0        0             849 Apr 10  2002 welcome.msg~
[color=blue]-(dearvoid@LinuxEden:tty3)-(~)-
[17783 0] $ [/color]
      
超级版主,先感谢你的帮助

但是有没其他办法呢?这个方法不大好用,而且用这个方法写脚本也不大好整呢      
To crack common interactive applications you can turn to the well-known expect.      
脚本没写好,不过我找到个新的方法代替
scp src.txt username@hostname:/home/test/
这个可以将src复制到远程主机(hostname)的/home/test/下
一般情况下也要求交互式地输入密码,但是只有创建SSH密钥通道,就可以不用输入密码了。      
Fine. If you just want to copy files from one host to another that's enough.       
但是要是我学会在脚本中实现输入交互式所需信息,那样且不是更好?      
Sure. I recommend you spend some time on learning expect. It's absolutely useful. But at first, you better take a look at Tcl, which expect is based on.      
这样应该也可以, 用一个管道传输命令

[ ! -f "./myinputfile" ] && mknod ./myinputfile p
exec 4<>./myinputfile
ftp IP <&4
echo "$user  $password ">./myinputfile
echo "$other command" > ./myinputfile
......      
Thank you very much