2
有沒有一種方法可以將這一個班輪放到bash函數中?在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 ?
}
我猜有我的辦法很多概念性的錯誤。所以我會很感激任何幫助和意見。
第二次嘗試有三個問題:將命令的輸出分配給變量時,需要使用'$()'來捕獲輸出。例如,'result = $(mdfind -name「$ 1」)''。其次,'grep'和'sort'將文件*名稱*作爲參數,而不是數據;你必須使用'echo'並將其輸出傳送給命令。第三,幾乎總是需要對變量引用進行雙引號操作,以防止分詞和通配符擴展(例如'echo「$ result」'而不是'echo $ result')。 –