Cou*_*000 1 bash shell-script bashrc bash-functions
我正在寻找一种在其中一个设置文件中创建自定义函数的方法,以便当我打开一个新会话时,可以评估(或获取)相同的自定义函数,并且我可以轻松使用该函数。
我尝试创建一个函数来检查ERROR
我的日志文件中是否存在,因此当我检查日志文件时,我只需键入函数名称和日志文件名。现在我正在使用 grep:grep ERROR test.txt
但我想让它更容易,因为我有很多这样的检查。所以我在.bashrc
:
ok(){grep ERROR $filename}
Run Code Online (Sandbox Code Playgroud)
当我使用该函数时,我希望输入:ok test.txt
如果有的话,它应该给我错误行。
但是,在评估.bashrc
文件后,我收到一条错误消息:
-bash: .bashrc: line 16: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)
在我输入: 后ok test.txt
,它提供:
-bash: ok: command not found
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我使用此自定义功能吗?或者我应该将我的代码粘贴到另一个设置文件中.bashrc-profile
吗?
非常感谢!
shell 对{ ... }
构造的语法和空格非常挑剔。这两种设置该功能的方法将起作用:
ok() { grep ERROR $filename; }
ok() {
grep ERROR $filename
}
Run Code Online (Sandbox Code Playgroud)
关于大括号{ .. }
与括号( .. )
,Bash 的手册指出:
以下列表中的分号(或换行符)是必需的。
和
大括号是保留字,因此必须用空格或其他 shell 元字符将它们与列表分开。
List指的是大括号内的命令,所有这些都适用于任何{ ... }
使用过的地方,但函数可能是最常见的地方。
此外,如果您希望能够将文件名作为函数的参数,请在其中使用$1
。即ok() { grep ERROR "$1"; }
可以用作ok test.txt
.