You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Zsh中使用第二个目录存储Shell脚本并实现全局执行?

自定义脚本目录全局执行的PATH配置问题解决

问题场景

我希望创建~/scripts目录存储自定义脚本(例如~/scripts/xy,内容为echo hello world),让这些脚本能像/usr/local/bin下的文件一样全局执行。尝试在.zshrc中添加export PATH="~/scripts:$PATH"后,执行xy仍报错:

zsh: command not found: xy

问题原因

zsh中,双引号包裹的~不会被解析为用户主目录路径,会被当作字面字符串处理。此时系统实际查找的路径是~/scripts(而非真实的用户主目录下的scripts路径),因此无法找到目标脚本。

解决方法

有两种可行的修正方式:

  • 用$HOME替代~(兼容性更好,推荐):
    export PATH=$HOME/scripts:$PATH
    
  • 去掉双引号,让~能被正确展开:
    export PATH=~/scripts:$PATH
    

验证实例

修改后的.zshrc文件如下,问题已解决:

export ZSH="$HOME/.oh-my-zsh"

ZSH_THEME="robbyrussell"

plugins=(git)

source $ZSH/oh-my-zsh.sh

export PATH="/Applications/Visual Studio Code.app/Contents/Resources/app/bin:$PATH"
export PATH=$HOME/scripts:$PATH

内容的提问来源于stack exchange,提问作者Acri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 14:15:05