好苦的ruby

因為看Short Coding寫出簡捷好程式-短碼達人的心得技法的p.265這個ruby的執行,由於課本沒有多的解釋,所以看不太懂這個指令的正確與否?
煩請協助,謝謝!
檔案:
hex.dat內含
0x55
0x89
0xe5
0x8b
0x4d
0x08
0x8b
0x45
0x0c
0x8b
0x10
0x8b
0x01
0x29
0xd0
0x5d
0xc3

我在windows命令列下這樣的命令:
ruby -e ‘print open(“hex.dat”).read.map{|s|s.hex.chr}.join’ > bin.dat
結果產生這樣的錯誤:
-e:1: syntax error, unexpected $end
‘s’ 不是內部或外部命令、
可執行的程式或批次檔。

看來是語法有錯誤,可是現在的我並無能力知道錯誤在哪?況且這本課本有時候也有寫錯的地方,我現在的想法是這個s附近的|符號,不知道課本有沒寫錯!不然怎會產生’s’ 不是內部或外部命令的錯誤!
所以有哪位大德知道問題的話,還請教導小弟,謝謝!==>這是我在http://www.javaworld.com.tw/jute/post/view?bid=58&id=245809&tpg=1&ppg=1&sty=1#246080

留的言!

感謝koji幫我確認這個程式碼沒錯!

可是我真的很疑惑,為何會錯誤,所以今天又找了Google一會兒,看了一會兒ruby的電子書,終於在又是Ruby一行文… 畫出一張圖看出端倪,CFC是用雙引好刮起來ㄝ!但是Ozy這個日本人怎用單引號啊!所以我就改用雙引號來試試看:

ruby -e “print open(‘hex.dat’).read.map{|s|s.hex.chr}.join” > bin.dat

ya!ya!看來ruby的雙引號及單引號機制跟PHP的類似,唉!Ozy害得我好苦喔!

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *