Bash

如何在 bash 文件中製作自定義函式

  • February 15, 2018

我正在尋找一種在其中一個設置文件中創建自定義函式的方法,這樣當我打開一個新會話時,可以評估(或獲取)相同的自定義函式,並且我可以輕鬆使用該函式。

我嘗試創建一個函式來檢查ERROR我的日誌文件中是否存在,所以當我檢查日誌文件時,我只需鍵入函式名和日誌文件名。現在我正在使用 grep:grep ERROR test.txt

但我想讓它更容易,因為我有很多這樣的檢查。所以我將這一行添加到.bashrc

ok(){grep ERROR $filename}

當我使用該功能時,我希望輸入:ok test.txt 它應該給我錯誤行,如果有的話。

但是,在評估.bashrc文件後,我收到一條錯誤消息:

-bash: .bashrc: line 16: syntax error: unexpected end of file

在我輸入: 後ok test.txt,它提供:

-bash: ok: command not found

有人可以幫我使用這個自定義功能嗎?或者我應該將我的程式碼粘貼到另一個設置文件中,比如.bashrc-profile

提前非常感謝!

shell 對結構的語法和空格非常挑剔{ ... }。這兩種設置該功能的方法將起作用:

ok() { grep ERROR $filename; }
ok() {
   grep ERROR $filename
}

關於大括號{ .. }與括號( .. )Bash 的手冊指出

列表後面的分號(或換行符)是必需的。

大括號是保留字,因此必須用空格或其他 shell 元字元將它們與列表隔開。

List指的是大括號內的命令,所有這些都適用於任何{ ... }使用過的地方,但函式可能是最常見的地方。

此外,如果您希望能夠將文件名作為參數提供給函式,請$1在其中使用。即ok() { grep ERROR "$1"; }可以用作ok test.txt.

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