2

我需要生成一个巨大的文本。

我正在使用 bash ,我想将整数转换65为 char A。所以我在0and之间使用随机值255(我需要所有 ASCII 表),转换为 char 并使用>>. 但我不能bash将整数解释为字符。就像printf("%c", 65)在 C++ 中一样。但是如果我在 bash 中尝试这个,它会返回 6。

4

3 回答 3

5

如果你需要生成一个巨大的随机字节序列,为什么不使用/dev/urandom呢?

$ RANDOM=$( dd if=/dev/urandom bs=1024 count=1|base64 )
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 0.00056872 s, 1.8 MB/s
$ echo $RANDOM
r553ONKlLkU3RvMp753OxHjGDd6LiL1qSdUWJqImggHlXiZjjUuGQvbSBfjqXxlM6sSwQh29y484
KDgg/6XP31Egqwo7GCBWxbEIfABPQyy48mciljUpQLycZIeFc/bRif0aXpc3tl5Jer/W45H7VAng
[...]

我通过管道输出以base64避免可能混淆终端的控制字符。

$ RANDOM=$( dd if=/dev/urandom bs=1024 count=1 )

或者

$ dd if=/dev/urandom of=outputfile bs=1024 count=1

将创建一个包含 1kB 随机数据的文件。

于 2012-05-08T11:16:14.697 回答
4

你需要像这样链接它

printf \\$(printf '%03o' $((65)))
于 2012-05-08T17:08:21.847 回答
2

试试这个:

如何将 ASCII 字符转换为其十进制(或十六进制)值并返回?

于 2012-05-08T10:57:33.793 回答