簡體   English   中英

如何為此命令創建別名,將 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 的技能非常有限,所以無論我如何擺弄它,我似乎都無法讓它發揮作用,並且我確信我遺漏了某些/某些概念。

我在發布之前嘗試的別名的最后一次迭代是

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM