Функция для получения случайного числа от 0 до 50 - PullRequest
1 голос
/ 22 мая 2019

Ниже приведен код, который, как я думал, создаст случайное число от 0 до 50 (оба включены)

#!/bin/bash
var1=51
var=$RANDOM
echo $var
function rand(){
    local var1=$1
    local var2=$2
    local result=$(( var1 % var2 ))
    echo $result
}   
rand "var" "var1"

Первая функция эха работает нормально, она показывает случайное число каждый раз, но другой эхофункция всегда дает нулевой вывод

1 Ответ

1 голос
/ 22 мая 2019

Функция для получения случайного числа от 0 до 50

Функция:

rand() { echo $((RANDOM % 50)); }

К вашему коду:

  • bashиспользует строку
  • rand "var" "var1" переводит строку var и строку var1 в функцию
  • , тогда local var1=$1 устанавливает переменную var1 в качестве локальной переменной и значение переменнойПеременная var1 является строкой var (!).
  • , тогда local var2=$2 равна local var2="var1", значение переменной var2 устанавливается в строку "var1".
  • local result=$(( var1 % var2 )) недопустимо.Это равно local result=$(( "var" % "var1" )).Вы не можете делать вычисления над «строками», это бессмысленно.
  • Просто передайте значения переменных rand "$var" "$var1" в функцию.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...