我試圖生成與下面的代碼的隨機字符串:生成隨機字符串的zsh
for pic in `ls *.jpg`; do
rdn=`echo $RANDOM | sha256sum | cut -d" " -f1`
mv "$pic" ${rnd}.jpg
done
腳本的這部分含有大量的JPEG文件的目錄中運行,它應該隨機它們的文件名。問題是$RANDOM
變量在迭代過程中沒有更新,因此每次都給出相同的散列值。我嘗試使用/dev/urandom
,它可以工作,但比$RANDOM
慢很多。每次讀取時我該如何「重新生成」$RANDOM
?
對我的作品.. 。如果是腳本,請確保shebang行顯示「/ bin/bash」而不是「/ bin/sh」,以防萬一。 – vanza
你用/ dev/urandom嘗試了什麼?例如,如果你用「dd」限制切片,它應該很快。 – kojiro
另外,bash手冊中的這一行可能是相關的:*如果RANDOM未設置,即使它隨後被重置,它也會失去其特殊屬性。* – kojiro