2012-05-29 39 views
0

我正在寫一個基本上包裝了cd命令的bash函數,增加了一些額外的功能。編寫cd-echo自定義錯誤消息的包裝或讓cd的錯誤消息冒泡?

這工作正常,但一旦出現問題(給定的路徑不存在,用戶沒有足夠的權限輸入目錄),用戶會看到來自cd的錯誤消息。

簡單的例子:

$ echo $PWD 
/home/helpermethod/workspace 
$ up helpermethod # goes up to the first directory named helpermethod 
$ echo $PWD 
/home/helpermethod 
$ up foo 
bash: cd: /home/helpermethod/foo: No such file or directory 

它是好讓那些錯誤信息泡漲,不然我要提出的東西更有意義的用戶(和隱藏實際的實現)?

EDIT

的功能是要由(希望)大量的用戶使用。

EDIT 2

的功能是什麼?up讓我們的用戶輸入當前目錄上面的目錄的基名。

所以,如果你有例如

$回聲$ PWD /家庭/ helpermethod /工作區/ JAVA

,你鍵入

$ up home 

PWD取和基本名稱之後的部分是從PWD剝離。

它還允許進入「路徑」走,如果有多個目錄與相同基:

$ echo $PWD 
/foo/baz/foo/bar 
$ up baz foo # go to foo, which lies above baz 

回答

1

這完全取決於你的需求。你是爲自己編寫這個函數嗎?如果是這樣,它只取決於你的偏好。你在爲別人寫嗎?那麼這取決於他們的喜好和要求。

1

是否提供自己的錯誤消息取決於cd提供的錯誤消息是否在函數功能的上下文中有意義。既然你沒有描述你的函數的功能集,如果一些消息被替換了,那麼它是否會變得更有意義是不可能的。

1

我會自己處理常見的錯誤情況,給出一個更好的錯誤,然後讓不常見的錯誤條件起泡。例如,輸入錯誤的字符串可能會頻繁發生,並且錯誤消息不會提供太多信息。更好地說:No such directory foo in current directory hierarchy什麼的。事實上,這似乎是一個錯誤條件,你應該在嘗試進行字符串處理時幾乎免費獲得。但是如果你有權限錯誤,或者整個樹在此期間消失了,或者別的什麼,你可能會錯誤地出錯cd