bash - 如何通过bash中的重定向将多个命令的输出附加到文件名?

标签 bash ubuntu redirect scripting

我正在尝试创建一个文件,其中包含在确切时间安装在系统中的软件包列表。我们试图在不同的时间比较不同的主机来检查一些 sources.list 测试,所以我需要文件名包括主机名和日期。

我知道我可以使用类似的东西:

dpkg -l > dpkg-list-`hostname`.txt

或者
dpkg -l > dpkg-list-$(hostname).txt

date 相同命令。问题是当我尝试结合两个变量时:
    dpkg -l > dpkg-list-$(hostname)$(date).txt
-bash: dpkg-list-$(hostname)$(date).txt: ambiguous redirect

我已经尝试使用上述命令的所有组合,bash 一直提示重定向不明确。

现在,我知道我可以轻松地创建一个 bash 脚本来加载这两个变量并将它们附加到文件中,但这更像是一个概念证明,所以我想学习如何在单行中做到这一点。

最佳答案

尝试缩小 date 的格式使用以下输出:

dpkg -l > dpkg-list-$(hostname)$(date +'%Y%m%d').txt

给出:
dpkg-list-myhost20160506.txt

关于bash - 如何通过bash中的重定向将多个命令的输出附加到文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37067132/

相关文章:

linux - 仅当 ping 中断时 Bash 才继续

macos - 将整数附加到字符串 Bash 脚本 OSX

ubuntu - 如何使用永远和启动脚本在 ubuntu 上修复 "Error: MONGO_URL must be set in environment"?

html - 我应该将网站的所有网址重定向到 https 吗?

linux - 使用变量问题在声明期间增加数组元素

linux - 将长单行命令转换为 bash shell 脚本

php - SQL_MODE 不适用于 MySQL 5.7.18

c++ - 带有 ncurses 的子窗口

Jquery 覆盖链接,使用 url

ruby-on-rails - 使用 Rails 登录重定向后无法理解 Devise