Bash
如何在 bash 文件中製作自定義函式
我正在尋找一種在其中一個設置文件中創建自定義函式的方法,這樣當我打開一個新會話時,可以評估(或獲取)相同的自定義函式,並且我可以輕鬆使用該函式。
我嘗試創建一個函式來檢查
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
.