有没有办法可以将这个衬里变成bash函数?
mdfind -name autoflush.py | grep -Ev 'Library|VMWare|symf|larav' | sort
我试着这样做:
function mdf () { mdfind -name "$1" | grep -Ev 'Library|VMWare|symf|larav' | sort }
但没有成功。
我不能在bash函数中使用管道运算符吗?
我的下一个方法是:
function mdf () {
result=mdfind -name "$1"
grepped_result=grep -Ev 'Library|VMWare|symf|larav' $result
sort $grepped_result # return sort $grepped_result ?
}
我猜我的方法中存在许多概念错误。所以我很感激任何帮助和意见。
答案 0 :(得分:4)
您在第一次尝试时错过了分号。
mdf() { mdfind -name "$1" | grep -Ev 'Library|VMWare|symf|larav' | sort; }
只需要一个shell语法的怪癖,你需要它。如果您将命令放在自己的行上,那么您就不需要了。
mdf() {
mdfind -name "$1" | grep -Ev 'Library|VMWare|symf|larav' | sort
}
(我已删除了function
关键字。为了兼容性,您应该编写func()
或function func
但不要将它们合并。)
下次您遇到问题时,请尝试shellcheck.net。它是shell脚本的语法检查程序。真是个天赐之物。