如何生成兩個單詞的隨機序列?
例如,我想要像這樣的輸出
act apt act act apt act act apt apt apt apt act
對于單詞“apt”和“act”以及序列長度 12
我想出了
repeat 12 { if [ $(($(($RANDOM%10))%2)) -eq 1 ] ; then echo act ; else echo apt ; fi }
不過挺長的,尤其是拋硬幣,有沒有更優雅的方式?
uj5u.com熱心網友回復:
來自 GNU coreutils(在shuf我的例子中是 8.32 版):
shuf -r -n 12 -e act apt | tr '\n' ' '
來自man shuf:
shuf - 生成隨機排列
-e, --echo : 將每個 ARG 視為輸入行
-r, --repeat : 輸出行可以重復
-n, --head-count=COUNT : 最多輸出 COUNT 行
shuf單獨列印每行一個單詞,因此我們使用tr空格替換換行符將所有單詞放在一行中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/512842.html
標籤:壳zsh
