我有一个包含以下代码的 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 用户都会让您大吃一惊。:)请不要枪杀信使。
祝你好运!