开发者社区> 问答> 正文

当将其输出分配给变量时,为什么Linux bash不能在管道中执行第一个命令

我正在制作一个简单的脚本以从文件中生成一个随机单词~/Activities/words(这与/usr/share/dict/words,由于某些原因我的Linux系统没有该单词)相同。我正在将管道的输出分配给变量$word。head命令和-不会以白色突出显示。该脚本仅运行tail命令。我相信这是语法错误。我该如何解决?

我试过把烟斗放回去$()。两者显示相同的颜色。

#!/bin/bash

word=$( head -$RANDOM ~/Activities/words | tail -1 ~/Activities/words)

预期结果:脚本每次运行时随机出现一个单词 实际结果:该单词始终为études(单词文件夹中的最后一个单词,仅运行tail命令)。

展开
收起
祖安文状元 2020-01-06 16:32:43 418 0
1 条回答
写回答
取消 提交回答
  • 这将从单词文件输出一个条目并将其存储在变量中:

    word=$(shuf -n 1 ~/Activities/words)
    
    

    它会搜索整个文件,并且不会受到Bash $RANDOM变量的最大值是32767的困扰(使用它会忽略第32,767之后的所有条目)。

    2020-01-06 16:32:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载