rai*_*n_s 61 cygwin batch-file
我有一堆用于在Linux机器上运行的shell脚本.现在,我们已切换到Windows,我需要在那里运行这些脚本.我安装了Cygwin,但有没有办法让脚本使用Cygwin运行,但调用是从Windows批处理的?
Sim*_*mon 81
当然.在我(相当香草)Cygwin的设置,bash是在c:\cygwin\bin这样我就可以运行一个bash脚本(比如testit.sh使用像这样的命令Windows批处理文件):
C:\cygwin\bin\bash testit.sh
Run Code Online (Sandbox Code Playgroud)
...可以.bat像在命令行中输入的那样容易地包含在文件中,并且具有相同的效果.
Rom*_*cke 39
还有一件事 - 如果您在某些Windows文本编辑器中编辑了shell脚本,这会产生\r\n行结尾,那么cygwin的bash就不会接受这些\r.只需dos2unix testit.sh在执行脚本之前运行:
C:\cygwin\bin\dos2unix testit.sh
C:\cygwin\bin\bash testit.sh
Run Code Online (Sandbox Code Playgroud)
jse*_*als 26
如果您可以访问Windows上的Notepad ++编辑器,则可以使用一项功能轻松解决此问题:
我这样做了,它解决了我的问题.
希望这可以帮助!
欲了解更多信息,请访问http://danieladeniji.wordpress.com/2013/03/07/microsoft-windows-cygwin-error-r-command-not-found/
只是想补充一点,你可以这样做,为目录下的所有文件应用dos2unix修复,因为它为我们"修复"一堆脚本节省了大量时间.
find . -type f -exec dos2unix.exe {} \;
Run Code Online (Sandbox Code Playgroud)
我这样做是为了回答Roman的答案,但我还没有评论.