Невозможно изменить порядок загрузки для grub

В ksh, Bash, Zsh, Yash или BusyBoxsh:

[ "$RANDOM" -lt 3277 ] && do_stuff

Специальная переменная RANDOMоболочек Korn, Bash, Yash, Z и BusyBox создает псевдо -случайное десятичное целое число от 0 до 32767 каждый раз, когда она оценивается, поэтому приведенное выше дает (близкое к )один -из -десяти шансов.

Вы можете использовать это для создания функции, которая ведет себя так, как описано в вашем вопросе, по крайней мере, в Bash:

function chance {
  [[ -z $1 || $1 -le 0 ]] && return 1
  [[ $RANDOM -lt $((32767 / $1 + 1)) ]]
}

Если вы забыли указать аргумент или указали недопустимый аргумент, результат будет равен 1, поэтому chance && do_stuffникогда не будет do_stuff.

Здесь используется общая формула для «1 в n » с использованием $RANDOM, то есть [[ $RANDOM -lt $((32767 / n + 1)) ]],давая (⎣32767 / n ⎦ + 1 )из 32768 шансов. Значения n, которые не являются множителями 32768, вносят смещение из-за неравномерного разделения диапазона возможных значений.

0
28.10.2021, 19:13
0 ответов

Теги

Похожие вопросы