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
为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
|
|