微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

〜/ .zshrc别名,带空格

如何解决〜/ .zshrc别名,带空格

我有一个文件夹/文件名中放置空格的坏习惯。今天它咬了我。

我有一个名为NFB Lab文件夹,其中安装了NFB Lab。我想将快捷方式/命令nfb和pynfb添加~/.zshrc文件中,以便从任何地方启动主python脚本。

我使用以下命令通过nano编辑了~/.zshrc文件

alias nfb=/Users/mathieu/Documents/NFB\ Lab/pynfb/main.py
alias pynfb=/Users/mathieu/Documents/NFB\ Lab/pynfb/main.py

我也尝试过:

alias nfb="/Users/mathieu/Documents/NFB Lab/pynfb/main.py"
alias pynfb="/Users/mathieu/Documents/NFB Lab/pynfb/main.py"

都不行,我总是得到:

zsh: no such file or directory: /Users/mathieu/Documents/NFB

如何在没有卸载/重新安装NFB Lab的情况下解决此问题?

解决方法

您需要转义空格(\ ),例如,看看我的别名;

alias sub='/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'

否则,请查看ZSH functions。与别名相比,还有更多选择;

例如,使用arg作为路径运行python脚本,然后创建一个调用该函数的别名

function runpy() {
    python3 "$@"
}
alias runx="runpy '/tmp/dir with space/py.py'"
alias runy="runpy '/tmp/dir with space/py_second.py'"
,

您需要两个反斜杠。

$ mkdir "f oo"
$ alias f="cd f\\ oo"
$ f
$ pwd
/home/foobar/tmp/f oo
,

考虑到单引号或双引号内反斜杠引起的混淆,这是一种替代方法:

alias nfb="'/Users/mathieu/Documents/NFB Lab/pynfb/main.py'"
alias pynfb="'/Users/mathieu/Documents/NFB Lab/pynfb/main.py'"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。