Bash 抑制输出
本文将解释使用 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 脚本。
-
bash First.sh
输出:Hello World
-
./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 已经存在,现有内容将被修饰,脚本的新输出将存储在文件中。
相关文章
在 Bash 中运行 find -exec 命令
发布时间:2024/03/14 浏览次数:127 分类:操作系统
-
本文将演示如何使用 find 命令的 -exec 参数来使用 find 命令定位文件中的任何文本。