尝试执行shell脚本时出现以下错误,
$'\r': command not found: line 2:
Run Code Online (Sandbox Code Playgroud)
请为此建议一个解决方案.
以下是脚本中使用的初始行,
#!/bin/sh
if [[ $# -lt 1 ]]; then
echo "ERROR Environment argument missing <dev,test,qa,prod>"
export RC=50
exit $RC
fi
Run Code Online (Sandbox Code Playgroud)
Pau*_*ce. 24
您的问题是该文件具有Windows行结尾.这可能是由于在Windows中编辑文件并尝试在非Windows系统上运行它.
您可以使用dos2unix转换行结尾来解决此问题:
dos2unix ConstruedTermsXMLGenerator.sh
Run Code Online (Sandbox Code Playgroud)
在另一个方向转换的相应实用程序是unix2dos.
有些系统有fromdos和todos.
在 下运行脚本时,我收到了不同的错误消息/bin/sh,但是当我切换到 时/bin/bash,它工作正常:
$ cat foo.sh
#!/bin/sh
if [[ $# -lt 1 ]];
then echo "ERROR Environment argument missing"
RC=50
exit $RC
fi
$ sh foo.sh
foo.sh: 6: [[: not found
$ bash foo.sh
ERROR Environment argument missing
Run Code Online (Sandbox Code Playgroud)
你已经建立了一种羞怯主义。这对您的组织来说可能是大事,也可能不是大问题。如果您想继续使用bash- 特定功能,请将 shebang 行更改为#!/bin/bash并查看是否有帮助。
| 归档时间: |
|
| 查看次数: |
37693 次 |
| 最近记录: |