Ale*_*x Q 2 linux zsh shell path
我的 zsh 正在做一些奇怪的事情,它运行的可执行文件不是我路径上的第一个可执行文件。我有一个用于 ssh 的包装器脚本,但是在调用真正的 ssh 二进制文件时没有调用包装器。
一些诊断:
$ echo $SHELL
/bin/zsh
$ echo $PATH
/home/user1/bin:/home/user1/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/X11/bin:/usr/kerberos/bin
$ which ssh
~/bin/ssh
$ builtin which -a ssh
/home/user1/bin/ssh
/usr/bin/ssh
$ alias
l.='ls -d .* --color=tty'
ll='ls -lh'
ls='ls --color=auto'
run-help=man
vi=vim
which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
which-command=whence
zcp='noglob zmv -W -C'
zln='noglob zmv -W -L'
zmv='noglob zmv -W -M'
Run Code Online (Sandbox Code Playgroud)
我尝试在 bash 中运行 'ssh' 并调用了我的包装器脚本,所以这似乎是 zsh 的问题。
如果需要任何其他诊断信息,请现在告诉我。
我真的很想知道为什么当我尝试调用 ssh 时 $PATH 变量被忽略了。
更新 1
添加了'builtin which -a ssh'的输出
小智 5
在信息页面中,zsh 使用哈希表来存储可执行文件的路径。我猜你是按这个顺序做的。
which ssh
,这只是检查 PATH,而不是 zsh 哈希表。zsh 的信息页面建议hash -r
将清除哈希表,之后将重建哈希表,这将获取您的包装器脚本。
当您启动 bash 时,它没有共享路径的 zsh 内部哈希,因此它只是开始在 PATH 中查找以查找内容。
归档时间: |
|
查看次数: |
623 次 |
最近记录: |