示例脚本及注释


  1. #!/bin/bash
  2. pwd > 1.log # 输出重定向到指定文件
  3. date 1> 1.log # “>”与“1>”作用相同;覆盖指定文件的原有内容
  4. date >> 1.log # 追加内容到指定文件的末尾
  5. echo "1.log: " `cat 1.log`
  6. echo -e "one\ntwo\nthree" > 2.log
  7. echo "Number of rows:" `wc -l < 2.log` # 输入重定向;统计2.log文件内容的行数
  8. echo "2.log: " `cat 2.log`
  9. echo -e "111\n222\n333" > 3.log
  10. echo "3.log: " `cat 3.log`
  11. wc -l < 3.log > 4.log # 同时重定向输入和输出,从3.log读取输入,然后将输出写入到4.log
  12. echo "4.log - Number of rows:" `cat 4.log`
  13. rm -rf 123 # 确保文件不存在
  14. ls 123 2> 5.log # 错误重定向到指定文件
  15. ls 123 2>> 5.log # 追加内容到指定文件的末尾
  16. echo "5.log: " `cat 5.log`
  17. ls 123 >> 6.log 2>&1 # 将stdout和stderr合并后重定向到指定文件
  18. pwd >> 6.log 2>&1 # 将stdout和stderr合并后重定向到指定文件
  19. echo "6.log: " `cat 6.log`
  20. ls 123 2>> 7.log >> 8.log # 分别重定向到指定文件
  21. pwd 2>> 7.log >> 8.log
  22. echo "7.log: " `cat 7.log`
  23. echo "8.log: " `cat 8.log`
  24. pwd > /dev/null # 屏蔽stdout
  25. ls /root > /dev/null 2>&1 # 屏蔽stdout和stderr
  26. rm -rf [0-9].log
  27. # Here Document
  28. cat << !
  29. abc
  30. 123
  31. ABC
  32. !
  33. # 将两个delimiter(这里使用!符号)之间的内容(document) 作为输入传递给command
  34. # ### 标准
  35. # - 标准输入文件(stdin)的文件描述符为0,默认从stdin读取数据;
  36. # - 标准输出文件(stdout)的文件描述符为1,默认向stdout输出数据;
  37. # - 标准错误文件(stderr)的文件描述符为2,默认向stderr中写入错误信息;
  38. #
  39. #
  40. # ### 输出重定向
  41. # - “command > file”:标准输出(stdout)重定向到指定文件,覆盖指定文件的原有内容
  42. # - “command >> file”:标准输出(stdout)重定向到指定文件,追加内容到指定文件的末尾
  43. # - “>”与“1>”作用相同
  44. #
  45. #
  46. # ### 输入重定向
  47. # - “command < file”:从标准输入(stdin)获取内容重定向到从指定文件中获取内容
  48. #
  49. #
  50. # ### 错误重定向
  51. # - “command 2 > file”:标准错误(stderr)重定向到指定文件,覆盖指定文件的原有内容
  52. # - “command 2 >> file”:标准错误(stderr)重定向到指定文件,追加内容到指定文件的末尾
  53. #
  54. #
  55. # ### 合并重定向
  56. # 将stdout和stderr合并后重定向到指定文件
  57. # - “command > file 2>&1”:覆盖指定文件的原有内容
  58. # - “command >> file 2>&1”:追加内容到指定文件的末尾
  59. #
  60. #
  61. # ### Here Document
  62. # - 特殊的重定向方式,用来将输入重定向到一个交互式Shell脚本
  63. # - 作用是将两个delimiter之间的内容(document)作为输入传递给command
  64. # - 开始的delimiter前后的空格会被忽略
  65. # - 结尾的delimiter必须顶格写,前后不能有任何字符,包括空格和 tab 缩进
  66. #
  67. #
  68. # ### “/dev/null”文件
  69. # - 写入到“/dev/null”文件的内容都会被丢弃;
  70. # - 也无法从该文件读取内容;

Shell - 简明Shell入门09 - 重定向(Redirection)的更多相关文章

  1. Shell - 简明Shell入门

    本文以示例和注释的方式,对Shell编程的基本知识点进行了总结和回顾,所有脚本均已做了基本的调试和验证. Shell - 简明Shell入门 01 - 第一个脚本 脚本的定义.执行方法以及echo命令 ...

  2. Shell - 简明Shell入门01 - 第一个脚本(HelloShell)

    示例脚本及注释 #!/bin/bash echo "hello shell!" # 打印字符串"hello shell!" echo "Date: & ...

  3. Shell - 简明Shell编程

    本文是对Shell脚本编程的总结和回顾,所有涉及的脚本均已做了基本的调试和验证. [toc] 测试环境信息 [root@CentOS7 ~]# uname -a Linux CentOS7 3.10. ...

  4. Shell - 简明Shell入门15 - 调试(Debug)

    示例脚本及注释 #!/bin/bash -x for filename in t1 t2 t3 do touch $filename.txt echo "Create new file: $ ...

  5. Shell - 简明Shell入门14 - 操作符(Operator)

    示例脚本及注释 #!/bin/bash echo "No code, just some comments." # ### 通配符 # * 代表任意(0个或多个)字符 # ? 代表 ...

  6. Shell - 简明Shell入门13 - 用户输入(UserInput)

    示例脚本及注释 1 - arguments #!/bin/bash if [ -n "$1" ];then # 验证参数是否传入 echo "The first para ...

  7. Shell - 简明Shell入门12 - 定制输出(ColorOutput)

    示例脚本及注释 #!/bin/bash echo -e "\033[32m" # 设置输出属性,绿色字体 echo "This is a test!" echo ...

  8. Shell - 简明Shell入门11 - 调用脚本(CallTheScript)

    示例脚本及注释 主脚本: CallTheScript.sh #!/bin/bash . ./11-subscript.sh # 调用其他脚本;注意点号"."和文件路径之间有一空格; ...

  9. Shell - 简明Shell入门08 - 函数(Function)

    示例脚本及注释 #!/bin/bash function Check() # 使用function定义函数 { Say # 通过函数名直接调用函数 if test $1 then return 0 # ...

随机推荐

  1. 开发简单的JavaWeb项目

    一.配置相关环境 下载配置JDK,eclipse,Tomcat服务器,Mysql数据库,Navicat for MySQL(数据库可视化工具) 如果你已经做好各个环境的配置,eclipse与Tomca ...

  2. oracle in 多个字段

    oracle 使用in的时候使用多个字段 这个也是刚需啊. 最近有个需求,在一堆商品里面过滤出一些特定的商品类型.供应商的商品(同时满足). 需要的数量不多,但是可能会变化,所以做了两个配置表. 商品 ...

  3. 2019.01.19 codeforces893F.Subtree Minimum Query(线段树合并)

    传送门 线段树合并菜题. 题意简述:给一棵带点权的有根树,多次询问某个点ppp子树内距离ppp不超过kkk的点的点权最小值,强制在线. 思路: 当然可以用dfsdfsdfs序+主席树水过去. 然而线段 ...

  4. Ubuntu下删除卸载程序图标

    Ubuntu下删除卸载程序图标 方法一:直接在终端输入命令alacarte.可以任意增.改.隐藏.显示菜单,但无法删除菜单,即使拥有root权限. 方法二:注意几个目录和文件./usr/share/a ...

  5. Location对象的查询字符方法实现

    function getQueryStringArgs(){ /*如果location.search有则删除第一个字符,并返回删除后的字符串*/ var gs = (location.search.l ...

  6. crontab条目包含%号问题

    crontab条目中包含%号,最常见的取时间,如:date +%d, 对%需要使用\进行转义,否则不能按预期执行,正确做法为: * * * * * echo "`date +\%d`&quo ...

  7. 关于windows10的使用

    关于windows10的使用 个人习惯设置 打开我的电脑之后,不是定位到此电脑,而是定位到快速访问. [解决办法] 用win + 箭头 快捷键将窗口靠边之后,另一边出现多个窗口 [解决办法] win ...

  8. python基础之列表list元组tuple

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7041763.html python基础之列表list元组tuple 列表li ...

  9. TinyMCE Editor

    TinyMCE Editor(https://www.tinymce.com/features/) is an online text editor, it is used to write post ...

  10. leetcode - [2]Evaluate Reverse Polish Notation

    Evaluate Reverse Polish Notation Total Accepted: 24595 Total Submissions: 123794My Submissions Evalu ...