我有一个Z-shell配置,我在多台服务器和我的个人电脑上使用。在我的个人计算机上,我有一个可执行文件的别名,我们将调用foo
。这是我的zshrc中该行的别名行:
alias foo=/path/to/foo
在多个服务器上,foo
的路径不同,我无法将其移至~/bin
这样的公共目录:
alias foo=/sever/path/to/foo
我需要别名在所有机器上都是foo,所以我不能创建两个单独的别名,例如foo和foo-server。有没有办法让Z-shell检测我所在的机器并自动将别名更改为foo?天真地,像:
如果在个人电脑上:
alias foo=/path/to/foo
其他:
alias foo=/sever/path/to/foo
答案 0 :(得分:1)
对于遇到此问题的其他人,我能找到的最佳解决方案是:
#{{{ Alias foo if it is in a specific location
if [[ -x ="/path/to/foo" ]]; then
alias foo='/path/to/foo'
fi
#}}}
感谢larsmans建议-x
旗帜
答案 1 :(得分:0)
你不应该使用zsh特定的东西。 您可以使用主机名(或域名或使用zsh设置的变量主机名)并检查您的PC或服务器上是否存在。 然后分支。 这样可以避免在文件/ path / to / foo存在但是不正确的情况下创建的问题,这是larsmans的回答。