我注意到我傾向於輸入ls
作爲;s
,所以我決定創建一個別名,以便不會拋出錯誤,而是運行命令I意思。使用分號字符創建shell別名
但是,知道分號字符在shell腳本/命令中有意義,是否有任何方法允許我使用該分號鍵創建別名?我試過以下無效:
alias ;s=ls
alias ";s"=ls
alias \;=ls
是否有可能使用分號作爲shell別名中的字符?我如何在ZSH中這樣做?
我注意到我傾向於輸入ls
作爲;s
,所以我決定創建一個別名,以便不會拋出錯誤,而是運行命令I意思。使用分號字符創建shell別名
但是,知道分號字符在shell腳本/命令中有意義,是否有任何方法允許我使用該分號鍵創建別名?我試過以下無效:
alias ;s=ls
alias ";s"=ls
alias \;=ls
是否有可能使用分號作爲shell別名中的字符?我如何在ZSH中這樣做?
首先:考慮不同的解決您的問題 - 戰鬥殼語法這種方式是自找麻煩。
據我所知,,而你可以定義這樣的命令 - 儘管不能與別名 - 只有這樣,才能通話它引述,例如如\;s
- 這違背了目的;閱讀技術細節。
的別名將無法正常工作:雖然zsh
允許你定義它(其中,可以說,它不應該),這將需要呼叫它很機制 - 引用 - 也是繞過別名的機制,因此可阻止調用。
你可以,但是,只要定義功能(僅zsh
),或在您的$PATH
一個腳本(在zsh
作品以及在bash
,ksh
和dash
),你調用它報價(例如,如\;s
或';s'
或";s"
),其中擊敗目的。
爲了記錄在案,這裏是命令的定義,但同樣,他們只能被調用報價。
功能(適用於僅zsh
;發生在初始化文件如~/.zshrc
):
';s'() { ls "[email protected]" }
可執行腳本;s
(在dash
作品,bash
,ksh
和zsh
;發生在目錄中你$PATH
) :
#!/bin/sh
ls "[email protected]"
因此,它的長短之處在於,我不能將原始'; s'別名爲'ls'來解決我輸入錯誤的問題? –
您無法定義_alias_,但可以在'$ PATH'中定義_function_(甚至可執行的腳本)。 – mklement0
但是我不能在不引用/轉義分號字符的情況下調用該函數? –