Alias
如何在 KornShell 中創建一個接受參數的別名
我正在嘗試創建一個別名,當給定一些參數時,它將查找包含參數作為模式的文件夾。讓別名為
gohf
。現在,我將使用這個別名
gohf <some-pattern>
,例如,例如。gohf testing
. 現在這應該尋找一個名稱中包含“testing”的文件夾,並在最後一步將我帶到該文件夾。以下是我能想到的。
alias gohf='cd `find . -type d | grep testing`';
當模式總是“測試”時,上述別名有效。我該如何修改,以便如果別名用作 say
gohf game
,那麼別名應該將我帶到其名稱中包含遊戲的文件夾。注意:
外殼:ksh
我假設我輸入的每個模式只有一個文件夾。
正如 manatwork 在評論中所說,您應該使用函式來更好地處理參數。
gohf(){ cd $(find . -type d -iname "$1" | sed 1q) }
無需將 to 的結果
find
傳輸grep
為使用標誌-name
或-iname
執行相同的操作。然後我們將整個事情通過管道傳輸到,sed
以便我們只cd
在有多個“命中”的情況下到達第一個“命中”。如果您希望能夠處理多個
find
“命中”,您應該執行以下操作:gohf(){ select dir in $(find . -name "$1" -type d) do cd $dir break done }