zsh - 写的脚本找不到命令

6

我正在使用Mac,并且我有一个脚本文件print_hello

#!/bin/bash
echo hello

如果我在目录中使用./print_hello命令直接运行它,并在zsh终端中,它将正确地打印出"hello"。我想将其添加为全局命令,这样在终端中输入print_hello应该会打印出"hello"。但是我得到的结果是:

zsh: command not found: print_hello

路径正确(我在.zshrc中编辑了它)。文件具有适当的权限(我使用了chmod 755 print_hello):
➜ ~ echo $PATH
/Users/mateusz/bin:/usr/local/bin:/Users/mateusz/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/GE/bin:~/scripts

print_hello文件在~/scripts目录中。

我只能直接从该脚本所在的目录运行它。我应该怎么做?我在.zshrc中添加了一些别名,它们可以正常工作,那么为什么可执行脚本不能正常工作呢?


2
我尝试了你的场景,使用Mac上的zsh,对我来说可以工作。 - cdarke
不太相关,但是为什么你有单独的 ~/bin~/scripts 目录,而不是只使用 ~/bin 呢? - chepner
你尝试过在将~添加到PATH之前扩展它吗?例如:export PATH=$PATH:$HOME/scripts - KamilCuk
1个回答

11

很奇怪,但帮助我的方法是替换掉

~/scripts

使用

$HOME/scripts

在 .zhrc 文件中


似乎环境参数$HOME的路径不同了?不确定。 - Mateusz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接