2016-09-16 16 views
1

我注意到我傾向於輸入ls作爲;s,所以我決定創建一個別名,以便不會拋出錯誤,而是運行命令I意思。使用分號字符創建shell別名

但是,知道分號字符在shell腳本/命令中有意義,是否有任何方法允許我使用該分號鍵創建別名?我試過以下無效:

alias ;s=ls 
alias ";s"=ls 
alias \;=ls 

是否有可能使用分號作爲shell別名中的字符?我如何在ZSH中這樣做?

回答

0
  • 首先:考慮不同的解決您的問題 - 戰鬥殼語法這種方式是自找麻煩。

  • 據我所知,,而你可以定義這樣的命令 - 儘管不能與別名 - 只有這樣,才能通話引述,例如如\;s - 這違背了目的;閱讀技術細節。

    • 別名將無法​​正常工作:雖然zsh允許你定義(其中,可以說,它不應該),這將需要呼叫它很機制 - 引用 - 也是繞過別名的機制,因此可阻止調用。

    • 你可以,但是,只要定義功能(僅zsh),或在您的$PATH一個腳本(在zsh作品以及在bashkshdash),你調用它報價(例如,如\;s';s'";s"),其中擊敗目的

爲了記錄在案,這裏是命令的定義,但同樣,他們只能被調用報價

功能(適用於僅zsh;發生在初始化文件如~/.zshrc):

';s'() { ls "[email protected]" } 

可執行腳本;s(在dash作品,bashkshzsh;發生在目錄中你$PATH) :

#!/bin/sh 
ls "[email protected]" 
+0

因此,它的長短之處在於,我不能將原始'; s'別名爲'ls'來解決我輸入錯誤的問題? –

+0

您無法定義_alias_,但可以在'$ PATH'中定義_function_(甚至可執行的腳本)。 – mklement0

+0

但是我不能在不引用/轉義分號字符的情況下調用該函數? –