【发布时间】:2014-11-25 09:31:32
【问题描述】:
我一直在尝试不同的解决方案来读取 linux 中的文件,但一点运气都没有。我的主要目的是从应用程序获取 http 响应并将其存储在文件中。
这是我在 shell 脚本文件中的代码
wget localhost:8080/abc/rest/eventservice/event -O /dev/null -S --quiet 2>&1 | grep "200 OK" > out.txt
while read -r LINE || [[ -n $LINE ]];
do
echo "$LINE";
done < out.txt
执行上述 sh 文件后,出现以下错误
'ervercheck.sh: line 6: syntax error near unexpected token `
'ervercheck.sh: line 6: ` done < out.txt
这条线wget localhost:8080/abc/rest/eventservice/event -O /dev/null -S --quiet 2>&1 | grep "200 OK"
印刷
HTTP/1.1 200 OK
我还注意到,当我尝试查看文件内容并输入 vi out.txt 时,内容是空的,但是当我输入 vi out.txt^M 时,内容就在那里。
请帮助我解释为什么执行 shell 文件会出现这样的错误以及为什么我的文件名末尾有 ^M
【问题讨论】:
-
脚本中有 MSWin 行尾。使用
dos2unix或fromdos删除它们。 -
哪一个是MSWin行尾,这个“;”?