你好,我想在cygwin中运行这个脚本,它不能正常工作。 它在linux下运行时工作正常。
错误:
$ ./script2.txt >> count.txt ./script2.txt: line 3: syntax error near unexpected token `|' '/script2.txt: line 3: ` | grep PlayerCount \
原文:
#!/usr/bin/bash wget --output-document=- http://runescape.com/title.ws 2>/dev/null \ | grep PlayerCount \ | head -1l \ | sed 's/^[^>]*>//' \ | sed "s/currently.*$/$(date '+%r %b %d %Y')/"
什么人要求:
$ od -a script2.txt 0000000 # ! / usr / bin / bash cr 0000020 nl wget sp - - output - d 0000040 ocument = - sp http : / 0000060 / runescape . com / t 0000100 itle . ws sp 2 > / dev / n 0000120 ull sp \ cr nl sp sp sp sp | sp gre 0000140 p sp P layer C ount sp \ cr 0000160 nl sp sp sp sp | sp head sp - 1 l sp 0000200 \ cr nl sp sp sp sp | sp sed sp ' s / 0000220 ^ [ ^ > ] * > / / ' sp \ cr nl sp sp 0000240 sp sp | sp sed sp " s / curre 0000260 ntly . * $ / $ ( date sp ' 0000300 + % r sp % b sp % d sp % Y ' ) / " 0000320
你需要你的文件不要有窗口式的结尾。
dos2unix script2.txt script2.txt
或者,用你的编辑器设置行结束符。 例如,在vim中,你可以使用:set ff=unix
你有DOS风格的行尾。 我怀疑这是什么原因造成的问题:
0000120 ull sp \ cr nl sp sp sp sp | sp gre
那应该只有nl
那里。 不过,您将文件传输到Linux的过程正在对您进行结束转换。
尝试flip
, conv
, d2u
, dos2unix
等来解决。