我正在尝试编写一个 shell 脚本,该脚本将自动为我设置 LAMP 堆栈。脚本中有一行是:
add-apt-repository -y ppa:ondrej/php5-oldstable >> /tmp/output.txt
但无论我怎么尝试,它总是输出以下内容:
gpg: keyring `/tmp/tmpf0k2tr/secring.gpg' created
etc........
我希望有不当我运行此命令将此 ppa 添加到我的存储库时,将显示在屏幕上的输出。
答案1
使用输出重定向/dev/null
并包括stderr
输出。
add-apt-repository -y ppa:ondrej/php5-oldstable > /dev/null 2>&1
- 将
2>&1
告诉 Bash 重定向stderr
到stdout
。 - 在这种情况下,该
command > file
节将重定向stdout
到一个文件/dev/null
。 /dev/null
是 Linux 的黑洞——您将无法从那里恢复任何东西。
结果:完全静默执行您的命令。
在您更新的问题中,您似乎将所有输出都记录到文件中。在这种情况下,您只需将其附加2>&1
到当前行即可:
add-apt-repository -y ppa:ondrej/php5-oldstable >> /tmp/output.txt 2>&1
这是因为您正在查看stderr
终端上打印的输出,您也需要将其重定向到日志(否则您将错过所有错误!)。