簡體   English   中英

在循環使用bash中不相關的數字范圍時使用文件中的行

[英]Using lines from a file while looping over an unrelated numeric range in bash

我有一個任務來顯示表格中的所有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傳遞到腳本,以便輸出中的“顏色”行更改為從randomnumbers.sh按順序獲取的數字? 謝謝!

一種簡單的方法是使用隨機數創建一個打開的文件描述符,並在需要該值時從該文件中讀取一行。

在這里,我們使用的是FD 3,因此腳本的其他部分仍然可以從原始的stdin中讀取:

#!/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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM