Ubuntu 如何在bash脚本中将从文件读取的行随机化为数组并在数组上循环

Ubuntu 如何在bash脚本中将从文件读取的行随机化为数组并在数组上循环,ubuntu,bash,Ubuntu,Bash,我有一个包含著名语录的文本文件 我想编写一个bash shell脚本,该脚本执行以下操作: 将文件的所有行读取到一个数组中(每行都是一个数组条目) “洗牌”或随机化阵列位置 在“随机化”数组上循环并打印当前行 我不熟悉bash脚本。有人能告诉我怎么做吗 我正在运行Linux Ubuntu 这就是我目前的情况: while read -r -a array do print "${array[@]}" done < myfile.txt 读取-r-a数组时 做 打印“${array[@

我有一个包含著名语录的文本文件

我想编写一个bash shell脚本,该脚本执行以下操作:

  • 将文件的所有行读取到一个数组中(每行都是一个数组条目)
  • “洗牌”或随机化阵列位置
  • 在“随机化”数组上循环并打印当前行
  • 我不熟悉bash脚本。有人能告诉我怎么做吗

    我正在运行Linux Ubuntu

    这就是我目前的情况:

    while read -r -a array
    do
      print "${array[@]}"
    done < myfile.txt
    
    读取-r-a数组时
    做
    打印“${array[@]}”
    完成
    我需要随机化阅读行。有人知道我如何修改脚本来做我想做的事情吗

    我试着使用排序--随机排序,如下所示:

    done < cat myfile.txt | sort --random-sort
    
    done

    但是bash发出了错误消息

    您可以使用
    fortune
    程序。您可能必须修改文件以包含所需的分隔符

    要修复错误消息,请执行以下操作:

    done < <(sort --random-sort myfile.txt)
    

    @第三,请不要引诱人们再次提出同样的问题。投票吧,仅此而已——谢谢@Takashi,如果适用,您的问题将自动转移到堆栈溢出。不需要再次发布相同的问题!
    sort --random-sort myfile.txt | while