我已經寫了一個小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腳本可能無法正確處理它。 –