【问题标题】:How do I put my random generated word into an variable?如何将随机生成的单词放入变量中?
【发布时间】:2015-06-03 11:08:06
【问题描述】:

我制作了一个脚本,从 /usr/share/dict/words 打印一个随机单词。 我希望它将随机单词存储到一个变量中,但我无法弄清楚..

脚本如下:

ALL_NON_RANDOM_WORDS=/usr/share/dict/words

# total number of non-random words available 
non_random_words=`cat $ALL_NON_RANDOM_WORDS | wc -l` 

random_number=`od -N3 -An -i /dev/urandom | 
awk -v f=0 -v r="$non_random_words" '{printf "%i\n", f + r * $1 /   16777216}'` 
sed `echo $random_number`"q;d" $ALL_NON_RANDOM_WORDS

我尝试了几件事,但遇到了访问被拒绝等错误。

【问题讨论】:

  • 尝试在命令行上运行wc -l /usr/share/dict/words,作为执行脚本的同一用户。如果这在没有权限问题的情况下有效,则可以尝试使用/dev/urandom 以及head /dev/urandom 之类的东西。这将有助于确定 access denied 错误的来源。
  • 错误消失了,现在我找不到了。我只想将随机单词存储在一个字符数组中,以便以后可以使用它来比较字符

标签: bash unix


【解决方案1】:

如果您有access denied,它可能意味着您无权访问某些内容。所以你可以这样尝试:sudo yourScript

顺便说一下,请给我们完整的错误信息。

【讨论】:

  • 好吧,如果我尝试:WORD=sed echo $random_number"q;d"$ALL_NON_RANDOM_WORDS 它给了我:未找到
  • @Mirwais 您确定您已正确存储了words 文件吗?
  • 是的,因为它是每个 unix 系统中的标准字典
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-10
  • 1970-01-01
  • 2011-06-24
  • 1970-01-01
  • 2012-10-25
  • 2016-08-01
  • 2013-12-17
相关资源
最近更新 更多