2015年3月30日

Mac - 替 fish shell 增加自訂函式 ( Create custom functions for fish shell on Mac )

fish shell 是我相當喜愛使用的 command line shell,之前介紹過如何更改 fish shell 的配置,本篇將介紹如何替 fish shell 擴充自訂的函式。( 其他 Mac 相關教學可以參考本篇整理 )



前置作業:
在自訂函式之前,必須先瞭解 fish shell 本身已經有提供許多方便的 function,在 Mac 主要是存放於 /usr/local/share/fish/functions,在這個資料夾可以看到許多函式檔案。不過,我們基本上不會去變動這個資料夾,我們可以在家目錄底下建立資料夾,如:~/.config/fish/functions,稍後我們自訂的函式檔案就可以存放於此。


建立自訂函式:
首先建立自訂的函式檔案,
# 檔名要跟函式名稱一樣
vim ~/.config/fish/functions/myfunction.fish
這邊簡單做一個範例,
# 函式名稱為 myfunction
# $argv 為輸入參數
function myfunction
    echo "hello, " $argv
end
將檔案儲存之後即完成。


使用自訂函式:
於 fish shell 底下執行,
#未給予參數
~> myfunction
hello,

# 給予參數
~> myfunction john
hello, john


注意事項:
自訂函數請避免無窮迴圈的問題,以下列出一個會產生無窮迴圈的範例
function shutdown
    shutdown -h now
end


Environment :
  ・ Mac OSX
  ・ fish shell 2.1.0

Reference :
  ・ Fish shell tutorials


熱門文章