我注意到我倾向于将ls
错误地输入;s
,所以我决定创建一个别名,这样它就可以运行命令I而不是抛出错误的意思。
但是,知道分号字符在shell脚本/命令中有意义,有没有办法允许我用分号键创建一个别名?我试过以下无济于事:
alias ;s=ls
alias ";s"=ls
alias \;=ls
是否可以将分号用作shell别名中的字符?我如何在ZSH中这样做?
答案 0 :(得分:0)
首先:考虑以不同的方式解决您的问题 - 以这种方式对抗shell语法就是在寻找麻烦。
据我所知,虽然您可以定义这样的命令 - 虽然没有别名 - 是的唯一方法>打电话它是引用,例如为\;s
- 这违背了目的;请继续阅读技术细节。
别名无法工作:zsh
允许您定义(其中,可以说,它不应该调用 引用所需的机制 - 也是绕过的机制>别名,因此阻止调用。
但是,您可以定义功能(仅限zsh
)或$PATH
< / strong>(适用于zsh
以及bash
,ksh
和dash
),,只要您调用它引用 (例如,\;s
或';s'
或";s"
),违背目的。
对于记录,这里是命令定义,但同样,它们只能被引用引用。
功能(仅适用于zsh
;放置在~/.zshrc
等初始化文件中:
';s'() { ls "$@" }
可执行文字;s
(适用于dash
,bash
,ksh
和zsh
;放在$PATH
的目录中:
#!/bin/sh
ls "$@"