我已经写了一个小bash脚本读取命令(每行一个)迭代,在文本文件中。 目前,脚本(如下所示)正在按顺序执行命令(即以与文件中输入的顺序相同的顺序)。如何随机列表,并通过随机列表(庆典)
我想帮助修改下面的脚本,以便它读取命令到一个数组,然后随机化迭代虽然随机列表之前该阵列(即列表)。
这是我到目前为止有:
while read -r -a array
do
python make_move.py "${array[@]}"
done < game_commands.dat
我在Ubuntu LTS 10.0.4运行bash 4.1.5
[编辑]
我需要执行列表中的所有命令,每个命令仅执行一次。
这是一个常见问题;见http://mywiki.wooledge.org/BashFAQ/026以及例如http://stackoverflow.com/questions/886237/how-can-i-randomize-the-lines-in-a-file-using-a-standard-tools-on-redhat-linux – tripleee
@tripleee:到底它是您提供解决方案的发布链接中的shuffle命令。你想发布这个答案,以便我可以接受吗? –
'$ array'实际上不是一个数组。循环遍历'shuf'输出的行(如在Sven的答案中)。无论如何,效果将按照要求,但第一行应该是:'while read -r line',第三行应该是'python make_move.py“$ line”'。如果你真的需要数组中的行,你仍然可以这样做,但是你的Python脚本可能无法正确处理它。 –