Alias

別名不起作用?

  • June 14, 2018

我像這樣在 ~/.cshrc 中創建一個別名

alias bw  "bjobs -w | awk '{print $7}'"

但它在 7 美元時不起作用。我該如何解決 ?

通過在命令提示符下鍵入以下內容,嘗試查看csh定義了您的別名:

% 別名 bw

bjobs -w | awk ‘{列印}’

發生了什麼?shell 擴展了一個名為 $7 的 shell 變數,它恰好什麼都不是,並將該空值填充到別名定義中。

所以這提出了一個解決方案本身,我們需要在 $7 中引用美元,遠離外殼的窺探,以便將其按字面意思輸入到別名的定義中:

% 別名 bw “bjobs -w | awk ‘{print " $ “7}’”

現在當我們測試別名是什麼時:

% 別名 bw

bjobs -w | awk ‘{列印 $7}’

這正是您在命令行中鍵入的內容!

要執行別名定義的編寫,我們分 3 個步驟執行:

- The quoting is done by closing the double quotes just before the $ to
           come out of the alias' quoting.
- Now the $ needs to be escaped via a backslash to stop it from being 
           expanded before the alias takes effect.
- Start the double quotes to re-enter the alias' quoting.

** 我希望我能用圖形畫出這件事,這使得它很容易理解。

引用自:https://unix.stackexchange.com/questions/449719