问题摘要
我试图通过Windows10Cygwin启动.sh脚本(即mintty.exe > bash.exe),但是.profile、.bash_profile或.bashrc都没有加载,我需要用Cygwin的bin目录更新PATH env变量。
背景
我正在尝试启动一个脚本finder.sh
#!/bin/bash
find .
read
来自C:\Users\Bo\Temp\
。它有unix行尾和可执行位集。
我在C:\Users\Bo\AppData\Local\Programs\cygwin64\
安装了Cygwin。无论是在系统中还是用户Windows的环境变量中,我都没有这个路径(而且我不想!)。我的runcoms都位于/home/Bo
下的这个目录中。我的.bash_profile (和自动取款机.bashrc)里面有一个export PATH="/cygdrive/c/Users/Bo/AppData/Local/Programs/cygwin64/bin":${PATH}
。
我想从Windows 启动脚本。我尝试使用bash.exe和mintty.exe在cygwin64\bin\
文件夹中通过Open > Choose another app > More apps > Look for another app on this PC
。在任何一种情况下,薄荷窗口都会显示:
FIND: Parameter format not correct
也就是说Windows的find
命令不是Cygwin的,所以我的脚本回显$PATH,Cygwin/bin
目录不在PATH中。如果我从上面添加正确的export PATH
语句到我自己的脚本中,它就能正常工作。所以现在要调试发射器和运行组件..。
我将echo ${0}
语句放入.profile、.bash_profile和.bashrc中,这些语句中没有一个触发了运行.sh脚本的触发器,它们从未运行过。我读过这些书和男人们。我尝试为mintty.exe和bash.exe创建一个快捷方式,将各种-l -i -e -
命令传递给每个使用Properties > Shortcut > Target
的命令,这些命令永远不会运行。简单地运行[..]\mintty.exe -h always
甚至不打开窗口。
如何通过Cygwin的mintty.exe/bash.exe在Windows中运行脚本,并从runcom读取更新路径(查找Cygwin命令,而不是更新Windows变量)?
发布于 2022-08-15 18:43:13
两部分修复:
( A)将用于的Windows环境变量设置为Cygwin下的.bash_env,并导出路径变量以包含该文件中的Cygwin/bin目录。我在Cygwin文档中找不到合适的引用,因为它似乎只是一个 bash ,但是这个变量是bash在非登录/交互运行时所寻找的。最佳参考资料:Cygwin shell doesn't execute .bashrc。
和B)使用.sh Openwith.从Cygwin/bin运行带有bash.exe的。
另外,烦人的Windows :当您选择一个程序打开.您的.sh脚本,它总是运行1x从您的C:\Windows\System32 32目录(?!)所有其他时间都将运行良好,CWD作为您的.sh脚本中的目录。
https://stackoverflow.com/questions/73363276
复制相似问题