windows中powershell中为啥不能执行source命令?

image.png
执行source ~/.zshrc直接就报错?

阅读 6.4k
2 个回答

您的做法是 POSIX Shell 的做法,Powershell 和 POSIX 标准里定义的 Shell 是不一样的。

在 Powershell 环境里 永久更改环境变量,需要在 Powershell 的 PROFILE (会在 Powershell 每次启动前执行)里添加。

在 Powershell 中直接输入 $PROFILE 可查看 PROFILE 文件的位置。
image.png

要更改环境变量,请在 $PROFILE 文件中(若不存在则创建)添加如下语句:

# Powershell 中环境变量都有 $env: 前缀
# HOMEPATH 环境变量指当前用户的主目录
$env:PATH="$env:PATH;$env:HOMEPATH\.npm-global\bin"

更改完成后下次打开 Powershell 即可生效。

需要即刻生效——即实现 bash 等中的 source 的效果,请运行

. $PROFILE

也就是说,在 Powershell 中,用 . 即是 source

当然,更好的方法是直接在控制面板中(高级系统设置 -> 高级 -> 环境变量)更改环境变量。

windows 得先有 source 二进制可执行文件才能执行 source ~/.zshrc

原生 windows 下 powershell 环境没有这个

可以的执行像是 msys2/wsl/wsl2/linux(类linux)/mac/(也可能存在一些我也不认识的) 环境

看你的执行命令像是要在windows 上使用 npm 全局包

解决方案:通常只是需要添加 windows 的环境变量

(ps 可以把 powershell 当成 linux/mac 上的 zsh/bash 来用)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题