Использование строк из файла в цикле по несвязанному числовому диапазону в bash - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть задача отобразить все шрифты bash / цвета / цвета фона в таблице, где текст отличается для каждого варианта и берется из файла, который содержит 448 слов / случайное число (я работаю с числами).Вот мой код для отображения всех вариантов

for i in {0..8}; do 
for j in {30..37}; do 
for n in {40..47}; do 
echo -ne "\e[$i;$j;$n""mcolors"
done
echo
done
done
echo "" 

Вывод: введите описание изображения здесь

Код для генерации случайных чисел:

#!/bin/bash 
for ((i=0;i<$1;i++))
do
echo $RANDOM >> randomnumbers.sh
done

Таким образом, вопрос заключается в том, как я могу передать числа из randomnumbers.sh в мой скрипт, чтобы строка «colors» в выходных данных изменилась на число, взятое по порядку из randomnumbers.sh?Спасибо!

1 Ответ

0 голосов
/ 30 ноября 2018

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

Здесь мы используем FD 3, так что другиечасти вашего скрипта все еще могут читать из оригинального стандартного ввода:

#!/usr/bin/env bash

# Make file descriptor 3 point to our file of random numbers (don't use .sh for data files)
exec 3< randomnumbers || exit

for i in {0..8}; do 
  for j in {30..37}; do 
    for n in {40..47}; do
      read -r randomNumber <&3                                 # read one number from FD 3
      printf '\e[%s;%s;%sm%05d' "$i" "$j" "$n" "$randomNumber" # & use in the format string
    done
    printf '\n'
  done
done
printf '\n'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...