从文件运行时,命令行中相同的bash脚本不起作用

def*_*foo 1 bash cygwin

我试图从cygwin中倾斜Bash脚本.当我在命令提示符下手动键入以下行时,一切正常,我看到屏幕上打印的数字从1到10.

for i in {1..10}; do
    echo $i;
done
Run Code Online (Sandbox Code Playgroud)

但是,如果我将脚本保存到文件(test.sh)并运行"./test.sh",我会看到以下错误

./test.sh: line 1: syntax error near unexpected token `$'do\r''
'/test.sh: line 1: `for i in {1..10}; do
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎很奇怪.我想知道如何在命令行中运行相同的脚本,但不是从文件中运行.

谢谢,德里克

mob*_*mob 8

\r是一个提示.您的文件可能具有CRLF(\r\n)行结尾,bash解释器无法正常处理.更改编辑器设置以使用Unix样式(\n)行结尾,或运行/usr/bin/dos2unix <file>您的文件以重置行结尾.