有没有一种方法可以将这里的这个衬垫变成 bash 函数?
mdfind -name autoflush.py | grep -Ev 'Library|VMWare|symf|larav' | sort
Run Code Online (Sandbox Code Playgroud)
我尝试这样做:
function mdf () { mdfind -name "$1" | grep -Ev 'Library|VMWare|symf|larav' | sort }
Run Code Online (Sandbox Code Playgroud)
但没有成功。
我不能在 bash 的函数内部使用管道运算符吗?
我的下一个方法是这样的:
function mdf () {
result=mdfind -name "$1"
grepped_result=grep -Ev 'Library|VMWare|symf|larav' $result
sort $grepped_result # return sort $grepped_result ?
}
Run Code Online (Sandbox Code Playgroud)
我猜我的方法中有很多概念错误。因此,我将不胜感激任何帮助和意见。
您在第一次尝试中缺少一个分号。
mdf() { mdfind -name "$1" | grep -Ev 'Library|VMWare|symf|larav' | sort; }
Run Code Online (Sandbox Code Playgroud)
只是 shell 语法的一个怪癖,你需要它。如果您将命令放在自己的一行上,那么您就不需要命令了。
mdf() {
mdfind -name "$1" | grep -Ev 'Library|VMWare|symf|larav' | sort
}
Run Code Online (Sandbox Code Playgroud)
(我已经删除了function关键字。为了兼容性,您应该编写func()or之一function func,但不要将它们组合起来。)
下次遇到困难时,可以尝试一下shellcheck.net 。它是 shell 脚本的语法检查器。真正的天赐之物。
| 归档时间: |
|
| 查看次数: |
2441 次 |
| 最近记录: |