我有一个任务,要在表中显示所有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 ""
输出:enter image description here
用于生成随机数的代码:
#!/bin/bash
for ((i=0;i<$1;i++))
do
echo $RANDOM >> randomnumbers.sh
done
所以问题是如何将数字从randomnumbers.sh传递到脚本,以便输出中的“颜色”行更改为从randomnumbers.sh按顺序获取的数字?谢谢!
答案 0 :(得分:2)
一种简单的方法是使用随机数打开文件描述符,并在需要该值时从该文件中读取一行。
在这里,我们使用的是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'