set
如果我在 Linux 中的 Bash 中运行这个用于 Windows cmd 提示符的命令,会发生什么?
set "PATH=C:\Program Files\Git\bin;%USERPROFILE%\AppData\Local\Programs\Git\bin;%PATH%"
echo %PATH%
在 Windows cmd 提示符中,这会根据我的需要修改 PATH,以便我可以在 Windows 命令提示符中直接Git\bin\bash.exe
运行。bash
当我在 Windows 中的 Git Bash 中或在 Linux Ubuntu 中的 Bash 中运行它时,没有产生任何错误。该命令似乎运行良好,但什么也没发生。我如何验证发生了什么?在 Linux 中运行安全吗?我希望它在 Linux 中不做任何实质性的事情,而是在 Windows 中设置 PATH。
对于那些想知道的人来说:
为什么这样?我需要一个可以在 Windows cmd 提示符和 Linux Bash 中运行的脚本,并且它将位于在两个地方启动脚本的启动代码之前。这与我在此处的问答有关:如何配置preBuildSteps.sh
在 Windows 和 Linux 上的 MPLAB X IDE 中作为预构建过程的一部分运行的 Bash 脚本。
Bash
set
是多用途的,但是当以这种方式使用时,它不会设置环境变量——它所采用的任何非选项参数实际上都放在 shell 的$1..$9
参数中(相当于 Cmd 的%1..%9
)。哦,我明白了。在 Linux 中,位置参数
$1
、$2
、$3
等可以通过命令进行修改set
。我忘记了这一点。因此,set whatever
只需将通过 访问的第一个位置参数设置$1
为字符串whatever
。您可以在 Linux 中的 Bash 中看到:
因此,
set "PATH=C:\Program Files\Git\bin;%USERPROFILE%\AppData\Local\Programs\Git\bin;%PATH%"
只需将$1
位置参数设置为字符串PATH=C:\Program Files\Git\bin;%USERPROFILE%\AppData\Local\Programs\Git\bin;%PATH%
:我现在记得:我之前写过这篇文章,在这里:如何使用 Bash更改命令行参数
$1
、等$2
set --
注意:从总体上看,上面的方法不能满足我的需求,但这个可以满足:Microchip MPLAB X IDE:配置并运行一个共享的预构建步骤 Bash 脚本,该脚本在构建过程中可在 Windows 和 Linux 中运行