我运行Windows 10 bash.exe来运行bash脚本。我遇到一种有线的情况,如果我在bash中添加gradle fatJar
以下的任何内容,则会抛出错误。
Bash脚本:(不工作)
#!/usr/bin/env bash
rm -rf build
gradle fatJar
echo 'Success'
在根项目'project_name'中找不到。一些候选人是: 'fatJar'。
Bash脚本:(工作)
#!/usr/bin/env bash
rm -rf build
gradle fatJar
为什么我无法在gradle fatJar
以下添加任何内容?这只发生在Windows 10 bash中。在Mac中,两者都可以正常工作。
答案 0 :(得分:1)
我想通了我自己。希望这个答案可以帮助别人。
经过一段时间的游戏后,我发现如果我使用&&
在一行中写下所有内容,一切正常,例如:rm -rf build&&gradle fatJar&&echo 'Success'
然后我意识到换行符有些错误。它正在为永久换行添加\r
。
经过一番研究,我发现了原因。之所以发生这种情况是因为我在In Mac IntelliJ中提交了文件,之后我在Windows IntelliJ中编辑了该文件,最后一次编辑将bash文件的行分隔符格式更改为CRLF Windows (\r\n)
,每个内部都添加了\r
换行。
我将行分隔符更改为LF UNIX and OS X (\n)
并将所有内容按预期运行。