返回

Shell编程基础——重定向是啥?

闲谈

你经常会看到诸如“>"和"<"之类的符号出现在Shell脚本中,它们可不是无缘无故出现的,而是非常重要的东西——重定向。掌握了它,你能玩转你的终端世界。

Shell脚本是一种为Unix或类Unix操作系统编写脚本程序的编程语言。这让你可以在计算机上进行批处理操作或创建自动化任务。其语法简洁,易于理解,既可以很方便的编写脚本以自动完成一系列命令,也可以作为高级程序设计语言编写应用程序。

重定向是什么?一句话概括:重定向就是改变Shell命令的输入或输出方向。比如,你可以使用重定向来将一个命令的输出发送到另一个命令的输入中,或者将一个命令的输出保存到一个文件中。

在Shell脚本中,有三种类型的重定向:

  • 输入重定向:将输入从一个文件或另一个命令重定向到另一个命令。
  • 输出重定向:将输出从一个命令重定向到一个文件或另一个命令。
  • 错误重定向:将错误输出从一个命令重定向到一个文件或另一个命令。

为了进行重定向操作,我们需要三个符号:

  • >:将输出重定向到一个文件或另一个命令。
  • <:将输入从一个文件或另一个命令重定向到另一个命令。
  • 2>:将错误输出重定向到一个文件或另一个命令。

例如,以下命令将ls命令的输出重定向到文件output.txt中:

ls > output.txt

以下命令将cat命令的输入从文件input.txt中重定向到ls命令中:

cat input.txt | ls

以下命令将ls命令的错误输出重定向到文件error.txt中:

ls 2> error.txt

还有其他两种常见的重定向运算符:>><&

  • >>:将输出追加到一个文件或另一个命令中。
  • <&:将输入从一个文件或另一个命令附加到另一个命令中。

例如,以下命令将ls命令的输出追加到文件output.txt中:

ls >> output.txt

以下命令将cat命令的输入从文件input.txt中附加到ls命令中:

cat input.txt <& ls

重定向是一个非常强大的工具,可以让你完成各种各样的任务。比如,你可以使用重定向来:

  • 将一个命令的输出保存到一个文件中,以便以后查看。
  • 将一个命令的输出发送到另一个命令的输入中,以便将这两个命令的结果结合起来。
  • 将一个命令的错误输出重定向到一个文件中,以便以后进行调试。

如果你想了解更多关于Shell脚本中重定向的知识,可以参考以下资源: