如何禁用/静音 shell 文件的终端打印功能?

如何禁用/静音 shell 文件的终端打印功能?

我有一个包含以下代码的 shell 文件,该 shell 的名称是test.sh

echo "Hello, world!"
cd ${HOME}
cd Desktop
mkdir "New Folder"
echo "Folder is Successfully created!"

然后我用 运行该代码bash test.sh,到目前为止一切顺利!在某些时候,我希望文件静音并且不向终端打印任何内容,而无需修改文件test.sh本身,换句话说,我希望保持代码逻辑不变,但在它之外添加一些代码以使终端不打印任何内容。我该怎么做呢?

答案1

您需要将所有输出传输到/dev/null

就像./test.sh > /dev/null 2>&1

  • >表示重定向输出
  • /dev/null基本上意味着“无处可去”
  • 2>&1表示将错误消息发送到常规文本所在的相同位置。从技术上讲,这些称为 SDTOUT (1) 和 STDERR (2)。

应该添加所谓的“舍邦“ 或者 ”舍邦线“到你的脚本的第一行。这会告诉你的 shell 如何运行脚本。你的第一行应该是这样的:#!/bin/bash告诉系统这个文件要用 bash 执行(很漂亮.. 对吧?)。

除此之外,将脚本的属性更改为可执行,这就是正确的做法。只需运行命令即可完成chmod。例如chmod +x ./test.sh

从那时起,您可以直接运行脚本,而不必像上面那样令人厌恶地调用 bash;)如果您以任何其他方式执行此操作,Linux 用户都会让您大吃一惊。:)请不要枪杀信使。

祝你好运!

相关内容