Вам необходимо проверить путь расширения:
# php -r "phpinfo();"|grep extension
extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules
Возможно, curl.so
должен находиться в другом пути (, т.е./usr/lib64/php/modules
).
Также необходимо проверить, существует ли curl
библиотека libcurl
.
В 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, вносят смещение из-за неравномерного разделения диапазона возможных значений.
Альтернативой использованию $RANDOM
является команда shuf
:
[[ $(shuf -i 1-10 -n 1) == 1 ]] && do_stuff
выполнит эту работу. Также полезно для случайного выбора строк из файла, например. для музыкального плейлиста.
Не уверен, что вам нужна случайность или периодичность... Для периодичности:
for i in `seq 1 10 100`; do echo $i;done
1
11
21
31
41
51
61
71
81
91
Вы можете смешать это с трюком "$RANDOM" выше, чтобы создать что-то более хаотичное, например:
для i в seq 1 1000 $RANDOM
; сделать эхо $i;done
ХТХ:-)
Нестандартный -раствор:
[ $(date +%1N) == 1 ] && do_stuff
Проверьте, равна ли последняя цифра текущего времени в наносекундах 1!
Улучшить первый ответ и сделать его более очевидным, чего вы пытаетесь достичь:
[ $(( $RANDOM % 10 )) == 0 ] && echo "You win" || echo "You lose"