~/.zshrc 带有 space 的别名

~/.zshrc alias with a space

我有一个坏习惯,就是在我的 folder/file 名字中加空格。今天它咬我。

我有一个名为 NFB Lab 的文件夹,我在其中安装了 NFB Lab。我想将 shortcut/command 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 uninstall/reintsall,我该如何解决这个问题?

你需要两个反斜杠。

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

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

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

要不,看看ZSH functions。与别名相比,有更多的选择;

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

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

考虑到单引号或双引号内的反斜杠引起的混淆,这里有一个替代方案:

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