需要在同一脚本中的第二个while循环中使用一个while循环o / p

时间:2019-10-09 12:24:37

标签: shell unix

#! /bin/bash
set -x
while read x; 
do    
uid=$x    
mboxutil -lp user/$x/* | awk   '{print $7}' | sed '1,2d'  >> test1    
done; 

while read test1;
do    
echo "imcheck -m "$test1"|dedupbymsgid.pl > clean_dedup"    
echo "imscripter -u admin -f clean_dedup -v EBbo0C -s $1 -x zANv5*7UB#SFg$]#"    
done; 

我需要将test 1作为下一个while循环的输入,其中file1是文件名。

$ TEST的O / P

=== 用户/ d_raj / INBOX 用户/ d_raj / APS-COD 用户/d_raj/APS.monitoring.CS 用户/ d_raj /丰富 用户/ d_raj /访问 用户/ d_raj /存档 用户/ d_raj / Cstation 用户/ d_raj / Cstation / C-station评论 用户/ d_raj /已删除 用户/ d_raj /草稿

user / d_raj / INFO:PROD :: VIP

1 个答案:

答案 0 :(得分:0)

您无需将o / p重定向到文件,而是可以将其保存在变量中

#! /bin/bash
set -x
while read x; 
do

uid=$x

mboxutil -lp user/$x/* | awk   '{print $7}' | sed '1,2d' >> test1

done; 

INPUT="./test1"

while IFS= read -r line
do

#echo "imcheck -m "$TEST"|dedupbymsgid.pl > clean_dedup"

#echo "imscripter -u admin -f clean_dedup -v EBbo0C -s $1 -x zANv5*7UB#SFg$]#"

echo "$line"

done < "$INPUT"

这将从文件中逐行读取,一旦所有行被读取,就将每一行分配给$ line变量,而停止。 INPUT是文件的路径