[英]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.