2014-02-12 100 views
2

我正在使用bash shell,並且想要創建一個別名,它將對給定目錄執行一些操作。假設我希望別名是「執行」,我希望它是ls和cd。我想「執行」採取一個單一的參數,這是一個目錄,然後將ls,然後cd到。多個命令的Unix別名參數

execute temp 

應該是等價的:

ls temp ; cd temp 

所以,我怎麼可以創建一個別名執行讀取下一個輸入執行後,再使用它作爲其他兩個參數?像這樣?

alias execute="directory=VALUE ; ls $directory ; cd $directory" 
+1

你不能給參數(不管你如何試圖隱藏它)到一個別名。某些shell的別名允許你在最後附加一些東西,把別名定義爲'alias tstR ='doSomething''(注意尾部空格),它將用你在'tstR'之後輸入的內容設置cmd行。閱讀關於shell函數,它們被設計爲處理參數。祝你好運。 – shellter

回答

5

功能更適合這樣的任務:

execute() { 
    ls "$1"; cd "$1"; 
} 

execute temp調用它。

+0

+1,我通常把上面的函數放在'.profile'或'.bashrc'中,所以當登錄時,我立即使用它。當別人問我爲什麼沒有這個命令時,這就是魔法和祕密。 – BMW

+0

非常感謝:) –