Joh*_*ord 4 command-line apt scripts
我正在尝试编写一个 shell 脚本,它将自动为我设置一个 LAMP 堆栈。我在脚本中的其中一行是:
add-apt-repository -y ppa:ondrej/php5-oldstable >> /tmp/output.txt
Run Code Online (Sandbox Code Playgroud)
但是尽我所能,它总是输出以下内容:
gpg: keyring `/tmp/tmpf0k2tr/secring.gpg' created
etc........
Run Code Online (Sandbox Code Playgroud)
当我运行此命令将此 ppa 添加到我的存储库时,我希望没有任何输出显示在屏幕上。
使用输出重定向到/dev/null并包含stderr输出。
add-apt-repository -y ppa:ondrej/php5-oldstable > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
这是因为您正在查看stderr终端上打印的输出,您还需要将其重定向到日志(否则您将错过所有错误!)。