2011-10-24 22 views
3

こんにちは私はcygwinでこのスクリプトを実行しようとしていますが、正しく動作していません。しかし、それはLinux上で実行してもうまく動作します。Cywginが正しくスクリプトを実行していません

エラー:

$ ./script2.txt >> count.txt 
./script2.txt: line 3: syntax error near unexpected token `|' 
'/script2.txt: line 3: ` | grep PlayerCount \ 

オリジナルスクリプト:あなたはDOS形式の行末を持って

$ od -a script2.txt 
0000000 # ! / u s r / b i n / b a s h cr 
0000020 nl w g e t sp - - o u t p u t - d 
0000040 o c u m e n t = - sp h t t p : /
0000060 / r u n e s c a p e . c o m / t 
0000100 i t l e . w s sp 2 > / d e v / n 
0000120 u l l sp \ cr nl sp sp sp sp | sp g r e 
0000140 p sp P l a y e r C o u n t sp \ cr 
0000160 nl sp sp sp sp | sp h e a d sp - 1 l sp 
0000200 \ cr nl sp sp sp sp | sp s e d sp ' s /
0000220 ^ [ ^ > ] * > // ' sp \ cr nl sp sp 
0000240 sp sp | sp s e d sp " s / c u r r e 
0000260 n t l y . * $ / $ ( d a t e sp ' 
0000300 + % r sp % b sp % d sp % Y ' ) / " 
0000320 
+2

の結果を投稿してください。od -a script2.txtの結果を投稿してください。 –

+0

エラーからこの意味ですか?または実際にそれが行うべき方法で動作するスクリプトから?編集:それに取り組んでください。 – Aaron

+0

あなたが求めたものを追加しました。 – Aaron

答えて

2

Windowsスタイルの行末を持たないファイルが必要です。

dos2unix script2.txt script2.txt 

または、行末をエディタで設定します。たとえば、vimでは、:set ff=unix

+0

WORKED:D THANKS(Y) – Aaron

2

#!/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')/" 

何誰かがを求めました。

0000120 u l l sp \ crnl sp sp sp sp | sp g r e

のみがnlを持っている必要があります。私はそれが問題を引き起こしているものだと思います。しかし、ファイルをLinuxに/から転送すると、行末の変換が行われます。

修正するにはflip,,d2udos2unixなどを試してください。

関連する問題