我如何为此命令使用别名将docker-compose logs -f减少到更少?

问题描述 投票:0回答:1

我有一个有效的命令,我想为其做一个别名,但似乎不知道该怎么做。工作命令是

docker-compose logs -f | less -S -R +F

这很好,基本上从日志中删除了自动换行。

需要注意的是,在使用此选项时,我还希望能够有选择地在中间添加参数,以指定要尾部使用的特定服务。制作最终看起来像这样的东西

docker-compose logs -f service1 service2 etc... | less -S -R +F

为了能够做到这一点,我想我可以使用xargs -I传递可变数量的参数并将它们注入命令的中间。但是我使用bash的技能非常有限,因此无论我花了多少钱,我似乎都无法使它起作用,并且确保我缺少某些东西/某些概念。

我在发布别名之前尝试的别名的最后一次迭代是

alias logsx="xargs -I{} bash -c 'docker-compose logs -f \"{}\" | less -S -R +F'"

运行时,它似乎启动less,但没有将docker日志管道传输到那里。

任何帮助将不胜感激。谢谢!

linux bash less
1个回答
1
投票

您需要的只是一个函数。

logsx() {
    docker-compose logs -f "$@" | less -S -R +F
}

"$@"将扩展给定的参数。所以你写logsx service1 service2

© www.soinside.com 2019 - 2024. All rights reserved.