質問: $IDX { print $1 }" } fortune | cowsay -f $(selectcow) ``` ### 補足情報(言語/FW/ツール等のバージョンなど) macOS Sierra 10.12.2
回答: サブシェルは親のシードを受け通け継ぐようです。バグ報告もあるみたいですが、仕様だと思います。 shell - References to $RANDOM in subshells all returning identical values - Stack Overflow 例えばこのようにしてはどうでしょう。 ``` IDX=$(( $(od -A n -N 4 -t u4 /dev/urandom) % $MAX )) # /dev/urandomなどが無く、しかしopensslがあるならば IDX=$(( $(openssl rand 4 | od -A n -N 4 -t u4) % $MAX )) IDX=$(( 0x`openssl rand -hex 4` % $MAX )) ```