从 /dev/random 读取时如何删除 od 输出中的多余空格
How to remove extra spaces in od output when reading from /dev/random
我正在制作一个脚本,以在特定位置自动生成带有随机数的 url。这将用于为随机端点调用 JSON API。最终目标是生成如下内容:
curl -s http://api.openbeerdatabase.com/v1/beers/<RAND_INT>.json | jq '.'
其中 <RAND_INT>
是随机生成的数字。我可以使用以下命令创建这个随机数:
$ od -An -N2 -i /dev/random
126
我不知道为什么会在输出中多出 10 个 space。当我将上述命令链接在一起生成 URL 时,我得到了这个:
$ echo http://api.openbeerdatabase.com/v1/beers/`od -An -N2 -i /dev/random`.json
http://api.openbeerdatabase.com/v1/beers/ 43250.json
如您所见,生成的 URL 中有一个额外的 space。我该如何避免这种情况?
我也试过对 rand_int 命令 $(od -An -N2 -i /dev/random)
进行子壳化,但结果是一样的。我考虑过将命令组合在一起,但我不知道如何在要在 URL.
中使用的变量中捕获 rand_int 命令的输出
如评论所示,有不止一种方法可以做到这一点。这是我会做的:
(( n = $( od -An -N2 -i /dev/urandom ) ))
echo http://api.openbeerdatabase.com/v1/beers/${n}.json
或者,将其放在一行中:
echo http://api.openbeerdatabase.com/v1/beers/$(( $( od -An -N2 -i /dev/urandom ) )).json
或者,只需使用 ${RANDOM}
,因为 bash
提供了它,尽管它的值最高为 32767,这可能是您更喜欢基于 od
的方法的原因之一。
我正在制作一个脚本,以在特定位置自动生成带有随机数的 url。这将用于为随机端点调用 JSON API。最终目标是生成如下内容:
curl -s http://api.openbeerdatabase.com/v1/beers/<RAND_INT>.json | jq '.'
其中 <RAND_INT>
是随机生成的数字。我可以使用以下命令创建这个随机数:
$ od -An -N2 -i /dev/random
126
我不知道为什么会在输出中多出 10 个 space。当我将上述命令链接在一起生成 URL 时,我得到了这个:
$ echo http://api.openbeerdatabase.com/v1/beers/`od -An -N2 -i /dev/random`.json
http://api.openbeerdatabase.com/v1/beers/ 43250.json
如您所见,生成的 URL 中有一个额外的 space。我该如何避免这种情况?
我也试过对 rand_int 命令 $(od -An -N2 -i /dev/random)
进行子壳化,但结果是一样的。我考虑过将命令组合在一起,但我不知道如何在要在 URL.
如评论所示,有不止一种方法可以做到这一点。这是我会做的:
(( n = $( od -An -N2 -i /dev/urandom ) ))
echo http://api.openbeerdatabase.com/v1/beers/${n}.json
或者,将其放在一行中:
echo http://api.openbeerdatabase.com/v1/beers/$(( $( od -An -N2 -i /dev/urandom ) )).json
或者,只需使用 ${RANDOM}
,因为 bash
提供了它,尽管它的值最高为 32767,这可能是您更喜欢基于 od
的方法的原因之一。