从add-apt-repository中删除输出


4

我正在尝试编写一个shell脚本,该脚本将自动为我设置LAMP堆栈。我在脚本中包含的行之一是:

add-apt-repository -y ppa:ondrej/php5-oldstable >> /tmp/output.txt

但是尝试一下,因为它总是输出以下内容:

gpg: keyring `/tmp/tmpf0k2tr/secring.gpg' created
etc........

我希望在运行此命令将此ppa添加到我的存储库时没有输出显示在屏幕上。

Answers:


4

使用输出重定向到/dev/null并包含stderr输出。

add-apt-repository -y ppa:ondrej/php5-oldstable > /dev/null 2>&1
  • 2>&1会告诉bash重定向stderrstdout
  • command > file节将重定向stdout到一个文件,在这种情况下/dev/null
  • /dev/null 是Linux的黑洞-您将无法从那里恢复任何东西。

结果:完全静默执行命令。

在更新的问题中,您似乎将所有输出记录到文件中。在这种情况下,您可以将追加2>&1到当前行:

add-apt-repository -y ppa:ondrej/php5-oldstable >> /tmp/output.txt 2>&1

这是因为您正在查看stderr正在终端上打印的输出,您还需要将其重定向到日志(否则您将错过所有错误!)。


1
@Braiam这是基于他的问题中提供的OP的命令。我认为它对他有效,并且他的脚本正在按root此处运行。问题是关于抑制输出,而不是关于无效命令。
gertvdijk 2013年

“ stderr to stdout”啊!那是诀窍。我虽然所有输出到控制台都是相同的。感谢您强调并非所有输出实际上都是相同的。
John Crawford

@gertvdijk记住,人们倾向于在不知道如何,什么,何时,何地等等的情况下进行复制粘贴。
Braiam
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.