分类: LINUX
2011-12-26 18:12:39
看UNIX.shell范例精解的时候里面有涉及到here文档
问题:
1. 什么是here文档
2. 怎么使用here文档
以下是小结:
在shell脚本程序中向一条命令传递输入的一种方法可以使用here文档。 允许脚本通过交互式的方式得到输入的数据,但它更常见的用途是在脚本程序中输出大量的文本,从而可以避免用echo语句来输出每一行。
here文档以<<指定字符串开始,再以指定字符串结束。
#!/bin/bash
cat <
hello world!
!
这里以!作为输入行的开始,以!作为输入行的结束,两个感叹号之间的内容是要cat处理的
[root@localhost linux tools]# more b.sh
#!/bin/bash
ed file1 <
3
d
.,\$s/is/was/
w
q
!test!
exit 0
[root@localhost linux tools]# more file1
she is a beautiful girl
she is a graceful girl
she was a kindful girl
[root@localhost linux tools]# ./b.sh
70
she was a kindful girl
48
[root@localhost linux tools]#
ftp文件自动传输
[root@localhost ~]# ftp -i -v -n 192.168.0.254 <
> user student1 password
> bin
> cd /home/student1
> put aaa.html
> END_FTP
Connected to 192.168.0.254.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
331 Please specify the password.
230 Login successful.
200 Switching to Binary mode.
250 Directory successfully changed.
local: aaa.html remote: aaa.html
227 Entering Passive Mode (192,168,0,254,37,206)
150 Ok to send data.
226 File receive OK.
13 bytes sent in 0.00046 seconds (28 Kbytes/s)
221 Goodbye.
[root@localhost ~]#
-i 选项表示关闭交互式信息提示
-n 选项表示限制ftp的自动登录,即不登录。如果是自动登录,那么ftp不用你输入用户名,而会自动去查找.netrc文件来寻找用户名和密码,如果没找着,那么它仍然会提示你输入用户我和密码。所以这里要使用-n选项禁止使用自动登录功能
-v 选项表示要输出详细的连接信息
另外要注意用户名和密码是通过user命令来录入的,即user后面跟着用户名和密码。登录成功后,下面就是要操作的FTP指令了。