快速业务通道

对话 UNIX: 学习更多的命令行技巧和操作符

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-10
le.out | mail –s "Here''s your E-mail!" acormany@yahoo.com),也可以把文件的内容重定向到 mail 命令的 stdin:

拥有帝国一切,皆有可能。欢迎访问phome.net
# mail –s "Here''s your E-mail!" acormany@yahoo.com < mail_file.out

使用 <<(也称为 here-document)可以节省格式化时间,并且使命令执行的处理更容易.通过使用 <<,文本字符串被重定向到执行的命令作为 stdin,但是可以继续输入信息,直到到达终止标识符.只需输入命令,输入 << 和终止标识符,然后输入需要的任何内容,在一个新行上输入终止标识符.通过使用 here-document,可以保留空格、换行等.

例如,UNIX 单独处理下面五个 echo 语句:

# echo "Line 1"

Line 1



# echo "Line 2"

Line 2



# echo "Line 3"

Line 3



# echo "Line 4"

Line 4



# echo "Line 5"

Line 5

可以用以下代码替换多个 echo 语句,UNIX 只需处理一次执行:

# cat << EOF

> Line 1

> Line 2

> Line 3

> Line 4

> Line 5

> EOF



Line 1

Line 2

Line 3

Line 4

Line 5

还可以使用制表符让 shell 脚本中的内容更整洁一点,这只需要在 << 和终止标识符之间放上一个连字符(-):

# cat <<- ATC

>	Line 1

>	Line 2

>	Line 3

>	Line 4

>	Line 5

> ATC



Line 1

Line 2

Line 3

Line 4

Line 5

清单 7 给出的示例演示如何结合使用本文到目前为止讨论的东西.

清单 7. 组合 CLI

# cat redirect_example

#!/usr/bin/ksh

cat <<- ATC | sed "s/^/Redirect Example => /g" >> atc.out
This is an example of how to redirect
stdout to a file as well as pipe stdout into stdin
of another command (i.e. sed), all done inside
a here-document.
拥有帝国一切,皆有可能。欢迎访问phome.net

清单 22. 用所有五个参数执行脚本

# ./subops_examples arg1 arg2 arg3 arg4 arg5
Test 1A: The 1st argument is arg1
Test 1B: The 1st argument is arg1
Test 2A: The 2nd argument is arg2
Test 2B: The 2nd argument is arg2
Test 3A: The 3rd argument is arg3
Test 3B: The 3rd argument is arg3
Test 4A: The 4th argument was supplied
Test 5: If the 4th argument was provided, the value would be
arg4. Otherwise, we will not see this message and get an
error instead.
arg5

清单 23 显示提供七个参数时的情况.注意,提供了七个参数,第五和第六个参数被忽略.

清单 23. 用七个参数执行脚本

# ./subops_examples arg1 arg2 arg3 arg4 arg5 arg6 arg7
Test 1A: The 1st argument is arg1
Test 1B: The 1st argument is arg1
Test 2A: The 2nd argument is arg2
Test 2B: The 2nd argument is arg2
Test 3A: The 3rd argument is arg3
Test 3B: The 3rd argument is arg3
Test 4A: The 4th argument was supplied
Test 5: If the 4th argument was provided, the value would be
arg4. Otherwise, we will not see this message and get an
error instead.
arg7

结束语

阅读本文之后,您应该更好地理解了 UNIX 用户输入的那些 “奇怪的” 字符.您了解了如何把数据重定向到 stdin 或 stdout,如何使用管道,以及如何在 UNIX 中使用操作符;这些都有助于您编写出更强大的脚本,更好地捕捉错误,使逻辑更简洁清晰.祝您好运!

拥有帝国一切,皆有可能。欢迎访问phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号