从数组Shell脚本中提取并匹配多个值

从数组Shell脚本中提取并匹配多个值,shell,for-loop,while-loop,do-while,Shell,For Loop,While Loop,Do While,我正在为我的环境编写媒体管理脚本,我希望我应该从文件或数组中为不同的池和库选择值,根据这些输入运行命令,并根据这些命令将输出发送给其他人 例如,基于第一个池、第一个库运行命令,然后将邮件发送给文件/数组中的第一个人。 或者,如果它可以匹配的东西,而不需要依赖于序列顺序,这将是伟大的 代码是: pool=(apple Mango Banana) library=(lib1 lib2 lib3) Name=(Guru Ravinder Eddy) Email=(abc@hello.com def.@

我正在为我的环境编写媒体管理脚本,我希望我应该从文件或数组中为不同的池和库选择值,根据这些输入运行命令,并根据这些命令将输出发送给其他人

例如,基于第一个池、第一个库运行命令,然后将邮件发送给文件/数组中的第一个人。 或者,如果它可以匹配的东西,而不需要依赖于序列顺序,这将是伟大的

代码是:

pool=(apple Mango Banana)
library=(lib1 lib2 lib3)
Name=(Guru Ravinder Eddy)
Email=(abc@hello.com def.@hello.com ghi@hello.com)
Subject=(India Canada Australia)
for l in "${library[@]}"
do
for p in "${pool[@]}"
do
for n in "${Name[@]}"
do
for e in "${Email[@]}"
do
for s in "${Subject[@]}"
execute a command based on pool and library > file1
and then mail to person one by one based on outputs

Output_File=/home/gsingh/MM/file556
echo "<html>" > $Output_File
echo "<title> Test" >> $Output_File
echo "</title>" >> $Output_File
echo "<body>" >> $Output_File
echo "<table border style="05">" >> $Output_File

while read line
do
        echo "<tr>" >> $Output_File
        echo "<td>" >> $Output_File
        echo $line >> $Output_File
        echo "</td>" >> $Output_File
        echo "</tr>" >> $Output_File
done < "file1.txt"
echo "</table>" >> $Output_File
echo "</body>" >> $Output_File
echo "</html>" >> $Output_File
MAILTO=$e
Subject=Test
MAILFROM=guru@yoyo.com

cat - ${Output_File} <<EOF | /usr/sbin/sendmail -oi -t
From: ${MAILFROM}
To: ${MAILTO}
Subject:$s
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0
EOF
Done
Done
Done
pool=(苹果芒果香蕉)
库=(lib1 lib2 lib3)
名称=(古鲁·拉文德·埃迪)
电子邮件=(abc@hello.comdef.@hello.comghi@hello.com)
主题=(印度加拿大澳大利亚)
对于“${library[@]}”中的l
做
对于“${pool[@]}”中的p
做
对于“${Name[@]}”中的n
做
对于“${Email[@]}”中的e
做
对于“${Subject[@]}”中的s
基于池和库>文件1执行命令
然后根据输出结果一个接一个地发送给某人
输出文件=/home/gsingh/MM/file556
echo”“>$Output\u文件
echo“Test”>>$Output\u文件
echo”“>>$Output\u文件
echo”“>>$Output\u文件
echo”“>>$Output\u文件
读行时
做
echo”“>>$Output\u文件
echo”“>>$Output\u文件
echo$line>>$Output\u文件
echo”“>>$Output\u文件
echo”“>>$Output\u文件
完成<“file1.txt”
echo”“>>$Output\u文件
echo”“>>$Output\u文件
echo”“>>$Output\u文件
MAILTO=$e
主题=测试
邮寄=guru@yoyo.com

cat-${Output_File}我不确定这里是否有任何问题。这个脚本有问题吗?如果是这样的话,举例来说,什么是错误的输出,它应该有什么输出?如果你没有关闭
while
循环,理想情况下如果你正在读取一个输入文件,那么你应该像“done”一样给出它“Input_file`,我看不到,如果您正在阅读Input_文件,请尝试一下,然后告诉我们。我已经关闭了我的while循环,(done<“file1.txt”)和我从您的帖子中获取的此邮件脚本。我的问题是,我无法通过它实现目标。我希望基于它读取的文件中的值,它处理命令并将结果存储在文件中,文件的内容作为邮件发送给不同的人