迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

Bash 抑制输出

作者:迹忆客 最近更新:2023/06/09 浏览次数:

本文将解释使用 Bash 抑制命令输出的方法。 此外,我们还将研究将输出重定向到文件以供以后使用。


Shell 和脚本简介

Shell 是一个在 Linux 中运行命令行界面的程序。 在 Linux 中,所有用户都可以使用许多不同的 shell。

通常,许多 Linux 发行版都使用默认的 GNU 的 Bourne-Again Shell (Bash)。

包含一系列命令的文件称为脚本。 使用 Bash 程序读取和执行此文件。

例如,假设一个名为 First.sh 的文件的内容如下:

#!/bin/bash
echo "Hello"
echo "World"

在上面的示例中,First.sh 是一个脚本文件,其中包含两个 echo 命令,当脚本执行时,这两个命令将在终端上显示 Hello World。 第一行 #!/bin/bash 标记了解释器用于运行脚本的位置。

我们可以通过两种不同的方式在 Linux 终端上执行 Bash 脚本。

  1. bash First.sh 输出:
    Hello
    World
    
  2. ./First.sh 输出:
    Hello
    World
    

在 Bash 脚本中抑制命令输出

我们可以在执行 Bash 脚本期间抑制任何用 Bash 脚本编写的命令的输出。 我们可以将输出重定向到空设备。

例如,如果我们想抑制 First.sh 脚本的输出,我们可以使用以下命令。

./First.sh > /dev/null

此命令会抑制 First.sh 脚本的输出,并且不会在终端上显示任何内容。 但是,如果 First.sh 脚本有任何错误,它仍然会显示在终端上。

考虑 First.sh 脚本中的以下命令。

#!/bin/bash
echo "Hello
echo "World"

在脚本中,第一个 echo 命令中缺少 " 。使用 ./First.sh 运行以下脚本的输出如下:

./First.sh: line 3: unexpected EOF while looking for matching `"'
./First.sh: line 4: syntax error: unexpected end of file

如果我们使用命令 ./First.sh > /dev/null 运行此脚本,将显示相同的输出。

./First.sh: line 3: unexpected EOF while looking for matching `"'
./First.sh: line 4: syntax error: unexpected end of file

抑制 Bash 脚本的错误

如果任何 Bash 脚本包含错误,./scriptname > dev/null 命令不会抑制错误并在终端上显示错误,如上所述。

我们也可以抑制来自终端的错误。 以下命令可以在执行 First.sh Bash 脚本时抑制终端的输出和错误。

./First.sh &>/dev/null
./First.sh >/dev/null 2>&1
./First.sh >/dev/null 2>/dev/null

第一个命令 ./First.sh &>/dev/null 可能不适用于所有 Linux shell。


记录或存储 Bash 脚本的输出

当我们在执行 Bash 脚本期间使用 /dev/null 时,输出会被抑制。 但是,我们可以将输出存储或记录在自定义文件中。

考虑以下 First.sh 脚本。

#!/bin/bash
echo "Hello"
echo "World"

我们可以使用以下命令运行 First.sh 脚本来存储或记录 Bash 输出。

./First.sh > outputfile.out

当我们执行上面的命令时,它不会在终端上显示任何东西; 但是,会创建一个名为 outputfile.out 的新文件(如果尚不存在),文件内容为:

Hello
World

如果 outputfile.out 已经存在,现有内容将被修饰,脚本的新输出将存储在文件中。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便