2012-05-23 74 views
4

我在個人筆記本電腦上使用zsh,在工作時使用bash/tcsh,在學校使用tcsh。我已經在所有位置設置了git,可以輕鬆地保持同步。在bash,csh和zsh之間有常見的別名文件

我想知道是否有可能爲所有3個shell使用通用文件作爲別名,並從相應的rc文件調用腳本將其轉換爲特定於shell的語法。我該怎麼去做呢?這可能不是一個好方法;我接受建議。

+6

如果你的別名是微不足道的,這個問題也是微不足道的。如果你的別名不那麼瑣碎,那麼很容易說「不可能」,並且很難說出沒有任何樣式的建設性內容。無論如何,爲了保持您的理智,嘗試從csh/tcsh遷移。 – tripleee

+1

聽起來像維修噩夢。另外,我同意三重。見[this](http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/)。你可能會發現[this](http://stackoverflow.com/a/2710848/26428)很有趣。 –

+0

我完全同意所有關於Csh的意見;這就是爲什麼我在我的comp上使用zsh。但是,Csh在學校中使用,而且我無權改變這種情況。 :( – kshenoy

回答

-2

正如你已經建議的那樣,它錯誤的做法。正確的做法是在所有系統上簡單地使用Bourne遺產shell,無論是zsh,ksh,bash,plain sh還是busybox。這樣,所有的別名都是Bourne語法,你唯一擔心的是是否支持別名(古老的sh不),並且它們適用於你的shell(zsh具有其他shell沒有的alias -g的全局別名)。

在學校裏,你應該可以調用一個Bourne遺產外殼,例如,

exec /bin/sh -l 

無論是在提示或在您的.cshrc。也許你的管理員甚至允許你選擇夢想中的殼。

+0

檢查chsh,通常提供它以讓用戶選擇其登錄shell而不需要root。 –