sh脚本出错,if语句给出意外的文件结尾

时间:2018-01-23 09:42:19

标签: linux if-statement syntax-error

我对Linux和shell脚本不是很熟悉,无论如何我尝试了一些我想添加到启动脚本的命令,但遇到了一些问题。

我尝试过不同的方法来摆脱

: unexpected end of file" 

 command not found

在此

#!/bin/bash
DEBUG="$1"
if [ "$DEBUG" = "debug" ]; then
echo "Lets start in debug mode"
fi

我试图从命令行运行它ike this

# sh myscript.sh debug

还尝试改变if if this this

if [ "$DEBUG" = "debug" ]
 then
  echo ......

但错误仍然存​​在 我知道我可以像这样运行它,但它似乎并没有满足它似乎

 ./myscript.sh debug

提示或提示最受欢迎!! :)

2 个答案:

答案 0 :(得分:1)

您需要使用dos2unix转换脚本。有问题的脚本 not 在脚本中有任何可能导致报告错误的违规行为。

错误可能是因为从Windows机器/文本编辑器复制并在Linux / Unix机器下运行的CRLF结尾。通过运行

将行尾(EOL)序列\r\n转换为\n
dos2unix script.sh

答案 1 :(得分:0)

小心白色空间,例如这项工作对我来说(双倍相等):

#!/bin/bash
DEBUG="$1"
if [ "$DEBUG" == "debug" ]; then 
   echo "Lets start in debug mode"
else
  echo "try again"
fi

您可以删除else语句