我如何为这个命令管道 docker-compose logs -f 做一个别名到 less?
How can I make an alias for this command piping docker-compose logs -f into less?
我有一个工作命令,我想为其创建一个别名,但似乎不知道该怎么做。工作命令是
docker-compose logs -f | less -S -R +F
这很好用,基本上从日志中删除了自动换行。
需要注意的是,在使用它时,我还希望能够有选择地向中间添加参数,以指定要尾部的特定服务。制作最终看起来像这样的东西
docker-compose logs -f service1 service2 etc... | less -S -R +F
为了能够做到这一点,我想我可以使用 xargs -I
传递可变数量的参数并将它们注入命令的中间。但是我对 bash 的技能非常有限,所以无论我 fiddle 如何使用它,我似乎都无法让它发挥作用,并且我确信有 something/some 概念我不见了。
我在发布之前尝试的别名的最后一次迭代是
alias logsx="xargs -I{} bash -c 'docker-compose logs -f \"{}\" | less -S -R +F'"
当你 运行 它似乎开始 less
但没有 docker 日志被传送到那里。
如有任何帮助,我们将不胜感激。谢谢!
你只需要一个函数。
logsx() {
docker-compose logs -f "$@" | less -S -R +F
}
"$@"
将扩展给出的参数。所以你写 logsx service1 service2
.
我有一个工作命令,我想为其创建一个别名,但似乎不知道该怎么做。工作命令是
docker-compose logs -f | less -S -R +F
这很好用,基本上从日志中删除了自动换行。
需要注意的是,在使用它时,我还希望能够有选择地向中间添加参数,以指定要尾部的特定服务。制作最终看起来像这样的东西
docker-compose logs -f service1 service2 etc... | less -S -R +F
为了能够做到这一点,我想我可以使用 xargs -I
传递可变数量的参数并将它们注入命令的中间。但是我对 bash 的技能非常有限,所以无论我 fiddle 如何使用它,我似乎都无法让它发挥作用,并且我确信有 something/some 概念我不见了。
我在发布之前尝试的别名的最后一次迭代是
alias logsx="xargs -I{} bash -c 'docker-compose logs -f \"{}\" | less -S -R +F'"
当你 运行 它似乎开始 less
但没有 docker 日志被传送到那里。
如有任何帮助,我们将不胜感激。谢谢!
你只需要一个函数。
logsx() {
docker-compose logs -f "$@" | less -S -R +F
}
"$@"
将扩展给出的参数。所以你写 logsx service1 service2
.