如何为 Cygwin bash 设置 PATH

问题描述 投票:0回答:2

我的 Cygwin 目录

foo.sh
中有脚本
/usr/local/bin
。我可以使用
mintty
运行它,但不能使用 bash。

我刚开始的时候,情况是这样的:

foo.sh in mintty   -   WORKING
foo.sh in bash     -   NOT WORKING

然后我将行

export PATH="${PATH}:/usr/local/bin"
添加到我的
.bashrc
文件中。现在情况如下:

foo.sh in mintty   -   WORKING
foo.sh in bash     -   WORKING
however
bash -c foo.sh     -   NOT WORKING

我需要运行脚本的最后一种方法才能工作。我将在我的可执行文件中使用它,该可执行文件是为 Windows 编译的,因此该命令必须在

cmd
中工作。

我的问题是:

  1. 如何设置变量
    PATH
    ,以使用
    bash -c
  2. 为什么默认情况下
    /usr/local/bin
    不在
    PATH
    中?有什么理由不做我想做的事吗?
bash cygwin system-paths
2个回答
1
投票

.bashrc
文件仅针对非登录 shell 执行。对于这样的环境,我建议包括来自
.bashrc
.bash_profile
:

echo '. "${HOME}/.bashrc"' >> ~/.bash_profile

这样,您的

.bashrc
将包含在登录和非登录 shell 中。


0
投票
  1. 您必须在加载 Cygwin 之前在 PATH 中添加一个目录,正如我在帖子中所解释的:在 Cygwin 中查看 Windows 环境变量 完成上述操作后,您可以尝试输入 bash -c ss 。
  2. 执行 bash -c foo.sh 时,bash 使用 Cygwin 加载时的 PATH。
© www.soinside.com 2019 - 2024. All rights reserved.