alias cleanup="rm -Rf `pwd`/{foo,bar,baz}"
这在bash中工作正常pwd始终是我已经cd’d进入的目录,但是在zsh看来,当.zshrc文件首次加载并且始终保持为我的主目录时,它被评估.我已经使用一个非常简单的别名设置进行测试,但它永远不会改变.
如何进行此更改,以便从子目录调用别名总是评估为该子目录?
编辑:不知道这是否会有所帮助,但是我在mac上通过oh-my-zsh使用zsh.
解决方法 加载.zshrc后,将对alias命令进行评估.该命令由两个单词组成:命令名(内置别名)和一个参数,这是扩展cleanup =“rm -Rf`pwd` / {foo,baz}”的结果.由于反引号在双引号之间进行插值,所以此参数将扩展为cleanup = rm -Rf / home / unpluggd / {foo,baz}(这是一个shell字),其中/ home / unpluggd是当前的当前目录.如果要在定义命令时避免内插,请改用单引号.这几乎总是你想要的别名.
alias cleanup='rm -Rf `pwd`/{foo,baz}'
然而这是不必要的复杂.你不需要`pwd /`在文件名前面!只写
alias cleanup='rm -Rf -- {foo,baz}'
(如果foo可能以 – 开头,那么就需要这样做,以避免被解析为rm的一个选项),这可以被简化,因为不再需要大括号:
alias cleanup='rm -Rf -- foo bar baz'总结
以上是内存溢出为你收集整理的zsh – 在`别名’中获取`pwd`?全部内容,希望文章能够帮你解决zsh – 在`别名’中获取`pwd`?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)