我試着寫一擊未發現句柄執行以下操作當前工作目錄:如何更改內部command_not_found_handle
- 如果$ 1成立,這是一個目錄,
cd
進去。 - 如果$ 1存在於用戶定義的目錄
$DEV_DIR
中,請將其放入CD中。 - 如果以前的條件不適用,則失敗。
現在,我有這樣的事情:
export DEV_DIR=/Users/federico/programacion/
function command_not_found_handle() {
if [ -d $1 ]; then # the dir exists in '.'
cd $1
else
to=$DEV_DIR$1
if [ -d $to ]; then
cd $to
echo `pwd`
else
echo "${1}: command not found"
fi
fi
}
雖然它似乎是工作(在echo pwd
命令打印預期的目錄),在實際殼的目錄並沒有改變。
我的印象是,由於這是我的.bashrc
內的函數,shell不會分叉,我可以執行cd
,但顯然這不起作用。任何提示如何解決這個將不勝感激。
爲什麼你需要這樣做?最有可能有更好的方法來完成你想要的任何事情。 – 2011-03-20 21:31:48
我想在一個簡單的方法讓所有項目保存的目錄下的子目錄之間移動。在做'cd〜/ prog; cd某事'一段時間後有點累。我很想聽聽任何其他建議。 – 2011-03-21 21:21:06