如何在执行 shell 脚本 Linux 时关闭回显

新手上路,请多包涵

这是我正在做的一件简单的事情

 echo "please enter a command"
 read x
 $x
 checkexitstatus()
 {...}

checkexit status 是一个 ifloop 在其他地方创建只是为了检查退出状态

我想知道的是,当我运行 $x 时,有什么方法不会显示在屏幕上,我想知道是否可以不将输出重定向到文件

原文由 AkyJ 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

您可以使用 Bash 重定向:

  • command 1> /.../path_to_file => 将标准输出重定向到 path_to_file。

command > /.../path_to_file 是上一条命令的快捷方式。

  • command 2> /.../path_to_file => 将 stderr 重定向到 path_to_file

要同时对相同的输出执行这两项操作: command >/.../path_to_file 2>&1

2>&1 表示将 2 (stderr) 重定向到 1 (stdout 成为 path_to_file)。如果您不想检索命令的输出,可以将 path_to_file 替换为 /dev/null

否则,您还可以存储命令的输出:

 $ var=$(command) # Recent shell like Bash or KSH
$ var=`command` # POSIX compliant

在此示例中, command 的输出将存储在 $var 中。

原文由 Idriss Neumann 发布,翻译遵循 CC BY-SA 3.0 许可协议

不,这是不可能的。

 $x &> /dev/null

原文由 Ignacio Vazquez-Abrams 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题