shell代码块重定向

Posted 肉松蛋卷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell代码块重定向相关的知识,希望对你有一定的参考价值。

代码块是由多条语句组成的一个整体,for、while、until循环或者if…else、case…in选择结构,或者由{ }包围起来的命令都可以称为代码块。

将重定向命令放在代码块的结尾处,就可以对代码块中的所有命令实施重定向。

举栗

  

使用 while 循环不断读取 nums.txt 中的数字,计算它们的总和。

  1. #!/bin/bash
  2. sum=0
  3. while read ndo
  4. ((sum += n))
  5. done <nums.txt #输入重定向
  6. echo "sum=$sum"

将代码保存到 test.sh 并运行:

cat nums.txt

80 33 129 71 100 222 8

. ./test.sh

sum=643

记录 while 的读取过程,并将输出结果重定向到 log.txt 文件:

  1. #!/bin/bash
  2. sum=0
  3. while read ndo
  4. ((sum += n))
  5. echo "this number: $n"
  6. done <nums.txt >log.txt #同时使用输入输出重定向
  7. echo "sum=$sum"

. ./test.sh sum=643

cat log.txt

this number: 80

this number: 33

this number: 129

this number: 71

this number: 100

this number: 222

this number: 8

{}包围的代码使用重定向。

  1. #!/bin/bash
  2. {
  3. echo "aa";
  4. echo "bb";
  5. echo "cc"
  6. >log.txt #输出重定向
  7. {
  8. read name;
  9. read url;
  10. read age
  11. <log.txt #输入重定向
  12. echo "$name已经$age岁了,它的网址是 $url"

. ./test.sh aa已经bb岁了,它的网址是cc cat log.txt aa

bb

cc



以上是关于shell代码块重定向的主要内容,如果未能解决你的问题,请参考以下文章

如何将视图块重定向到显示页面

代码片段:Shell脚本实现重复执行和多进程

Shell--数据流重定向

linux shell数据重定向

c shell 输入重定向保持打开状态

Jsp获取Java的重定向赋值(String)