我知道Perl我可以这样做:
bash$> perl -e 'print "\x48"x40;'
=> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
尝试在Ruby中执行此操作:
bash$> ruby -e "40.times{ print("0x48") }"
=> 72727272727272727272727272727272727272727272727272727272727272727272727272727272
....
bash$> ruby -e "40.times{ print(48.to_s(16)) }"
=> 30303030303030303030303030303030303030303030303030303030303030303030303030303030
....
bash$> ruby -e "40.times{ print('48'.hex) }"
=> 72727272727272727272727272727272727272727272727272727272727272727272727272727272
如何使用-e
选项在shell中使用Ruby来打印一些字符数,使用十六进制字符,例如\x48
是H
?
答案 0 :(得分:3)
如果您尝试打印与特定十六进制值关联的ASCII字符,就像使用Perl一样:
40.times{ print "\x48" }
# >> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
或
print "\x48" * 40
# >> HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
这意味着你可以这样做:
ruby -e 'print "\x48" * 40'
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
Ruby有很多Perlism。在这种情况下,与Perl相比,在Ruby中使用*
更加一致,Perl的字符为x
,数学为*
。
答案 1 :(得分:2)
您还可以使用以下内容:
ruby -e "print('48'.hex.chr)"