簡體   English   中英

在 awk 中的每一行打印索引

[英]print Index with each line in awk

select 第一次顯示選項並且它工作正常但是當我從 screenTwo function 進入這個菜單(previuos)時它要求我進行選擇但不顯示選項,我該如何處理這個?

 PS3="Please make a selection => " ; export PS3
    select var in `awk -F "#" '{print $4}' ${Temp_Config_File} | uniq` PREVIOUS
    do
    echo "\n`date +"%d%m%Y%H%M%S"` Daemon $var selected " >> $Log_File
    if [ -z $var ] ; then echo "\n\tPlease enter a valid choice \n " ; continue
    else  
        if [ $var = "PREVIOUS" ]; then 
            #removeFiles
            break 
        fi
            screenTwo $var

    fi
    done

第一個選項:請給我你的想法。

第二個選項:捕獲 screenTwo 的返回,每當它中斷時使用 awk 打印索引 $4。 (如下圖,但我不喜歡)

if [ $breakStat -eq 99 ]; then
     i=1
     echo "\n\nPlease choose one of the following deamon you wish to Start/Stop\n\n"
     awk -F "#" '{print $4}' Temp_OPDaemon_Config.cfg | uniq | while read line
     do
     echo "${i}) ${line}"
     let i=i+1
     done
     echo "${i}) PREVIOUS"
fi

謝謝

這就是我為處理它所做的。

PS3="Please make a selection => " ; export PS3
select var in `awk -F "#" '{print $4}' ${Temp_Config_File} | uniq` PREVIOUS
do
echo "${Date_Time} Daemon $var selected \n" >> $Log_File
if [ -z $var ] ; then echo "\n\tPlease enter a valid choice \n " ; continue
else  
    if [ $var = "PREVIOUS" ]; then 
        #removeFiles
        break 
    fi
    while : 
    do
        screenTwo $var
        breakStat=$?
        if [ $breakStat -eq 99 ]; then
         break
         elif [ $breakStat -eq 98 ]; then
         continue
        fi
    done

if [ $breakStat -eq 99 ]; then
    echo "\n\nPlease choose one of the following deamon you wish to Start/Stop\n\n"
    awk -F "#" '{print $4 }' ${Temp_Config_File} | uniq | awk -F "#" '{print NR ") " $0} END {print NR+1") PREVIOUS"}'
fi


fi
done

暫無
暫無

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

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