精華區beta NTUWindBand 關於我們 聯絡資訊
※ 引述《CMrockmanx (rockman)》之銘言: : 1. 有些shell所提供的alias功能並不能作參數傳遞. : 現在, 假如我在計中的機器上是使用bash, 而我要寫一個有關 find 的alias, 如下: : % find S_DIR -name FILENAME 2> /dev/null : 其中,S_DIR是search directory(default / directory),FILENAME是target file. : 我要如何能直接在prompt 下鍵入: : % f FILENAME S_DIR : shell就會自動的執行我要的動作呢? (Note: S_DIR 是 optional, 可不提供). 嗯,拖了好久才來這邊解一題。 用法其實滿簡單的,你只要把這些內容寫到某個檔案裡, eg. myfind ,然後在 bash 下執行 . myfind ,注意前 面的那個 "." ,然後就可以享用 f 的功能啦。 另外,如果嫌麻煩的話,也可以直接放進 .bash_profile 或 .bashrc ,這樣就不用每次再用 "." 那招執行了。 function f { if [ $# -gt 2 ]; then echo "You give me too many arguments!" return 1 elif [ $# -eq 0 ]; then echo "You give me no arguments!" return 1 elif [ $# -eq 1 ]; then search_dir=/ else if [ -d $2 ]; then search_dir=$2 else search_dir=/ fi fi find "$search_dir" -name "$1" 2>/dev/null return 0 } -- ※ 發信站: 批踢踢實業坊(ptt.m8.ntu.edu.tw) ◆ From: Port7.TS2.neto.