Bash-скрипт для поиска строки и помещения ее в массив

Очевидно, что ошибка из-за следующих шагов make

make[2]: Выход из каталога /usr/local/src/openssl-1.0.1e/apps' make[1]: *** [openssl] Ошибка 2 make[1]: выходя из каталога/usr/local/src/openssl-1.0.1e/apps'

, вы можете исправить эту ошибку, настроив следующую команду

./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
0
31.05.2019, 17:41
1 ответ

В bash вы можете использовать readarrayс подстановкой команд для захвата выходных данных, разделенных новой строкой -, в массив; например:

readarray -t outputs < <(seq 10)

Где я использовал seq 10для получения некоторого вывода.Это приводит к:

$ declare -p outputs
declare -a outputs='([0]="1" [1]="2" [2]="3" [3]="4" [4]="5" [5]="6" [6]="7" [7]="8" [8]="9" [9]="10")'

Для псевдослучайного выбора одного из этих элементов каждую минуту:

while :
do
  element=$(( RANDOM % ${#outputs[@]} ))
  var=${outputs[$element]}
  sleep 60
done

Отмечая, что массивы bash начинаются с нулевого индекса, арифметика $(( ))говорит использовать значение $RANDOMпо модулю количества элементов в массиве outputs.

3
28.01.2020, 02:22

Теги

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