0

我有一个 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

4

2 回答 2

1

对于遇到此问题的其他任何人,我能找到的最佳解决方案是:

#{{{ Alias foo if it is in a specific location
if [[ -x ="/path/to/foo" ]]; then
    alias foo='/path/to/foo'
fi

#}}}

感谢 larsmans 建议-x国旗

于 2012-04-16T19:07:01.463 回答
0

你不应该使用任何 zsh 特定的东西。您可以使用主机名(或域名或使用 zsh 设置的变量主机名)并检查是否在您的 PC 或服务器上。然后分支。如果文件 /path/to/foo 存在但不是正确的文件,这可以避免产生的问题,这是 larsmans 的答案创建的。

于 2012-04-16T15:01:32.217 回答