Bash

Bash 函式 Grep Mod

  • September 22, 2022

TL:DR 如何在允許可變數量的可選輸入的同時將 grep 添加到 bash 函式?

我發現在反复搜尋大量輸出時,我最終會用數據堵塞終端。有時,我想做一個 grep,並在擷取所有數據的同時快速轉到它的頂部。為此,我已經習慣使用 “clear;clear; grep

$$ options $$ $$ string $$ $$ file $$; 頂”。懶惰,我想把它變成一個名為“cgrep”的函式,它執行兩個清除和grep。我試過的是:

cgrep () {
  clear
  clear
  grep "$1" "$2" "$3"
}

這是可行的,前提是我始終只使用一個可選參數。雖然這在大多數情況下都不是問題,但我開始好奇如何在不引起問題的情況下為其提供 0-N 個可選參數(例如閱讀

$$ string $$作為$$ file $$)。 我讀過這篇文章,並嘗試了類似的實現。但是,這不太適合我的需要,如果我可以在 cgrep 和

$$ string $$使它看起來更像一個傳統的 grep。

在 bash 和 sh"$@"中將擴展所有位置參數,因此:

cgrep () {
  clear
  clear
  grep "$@"
}

請注意,$@必須使用雙引號來防止對每個參數執行分詞、萬用字元、空刪除等。

3.4.2 特殊參數

引用自:https://unix.stackexchange.com/questions/718314