我有一个有效的命令,我想为其做一个别名,但似乎不知道该怎么做。工作命令是
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日志管道传输到那里。
任何帮助将不胜感激。谢谢!
您需要的只是一个函数。
logsx() {
docker-compose logs -f "$@" | less -S -R +F
}
"$@"
将扩展给定的参数。所以你写logsx service1 service2
。