使用输入文件选择循环 - 动态输出以读取

时间:2015-07-15 07:02:46

标签: linux bash shell scripting aix

很棒的论坛!!我会尽量保持这一点,以达到目的。我一直试图了解是否可以读入一个文件,其中包含每个新行的详细信息列表。例如:

文件名:ALIAS_LIST.config

ALIAS1 CLUSTER1
ALIAS2 CLUSTER2
ALIAS3 CLUSTER3
QUIT

基于此,我希望我能够通过文件列表读取每个新行的数组,并使用Select循环生成动态输出,我已经很好地完成了我的菜单。我完成了我的脚本部分,它是任务的实际操作。以下是我试图实现的一个例子:

# *********************************
# Sourcing the Alias Queue file to use
# *********************************

ALIAS_FILE="/var/ALIAS_LIST.config"

if [ -f "$ALIAS_FILE" ]
then
    select alias_select in "${ALIAS_FILE[@]}"
    do
      echo "well done"
    done
else
    echo "*********************************"
    echo " Exit
    echo "*********************************"

exit 0

fi

根据文件输出到阵列选择菜单,我将使用标准PS3捕获并验证使用输入,并采取必要的步骤。

根据更新,这完全符合我的预期。如果反过来我们试图验证用户输入以提供有用的异常处理。以下是我根据您的意见尝试实现的目标:

更新版本(正常工作):

    mapfile -t arr < "/var/ALIAS_LIST.config"

    select alias_select in "${arr[@]}"
    do
    if [[ -z "$alias_select" ]]
    then
        echo
        echo "Invalid Choice"
        echo
    elif [[ $alias_select == "QUIT" ]]
    then
        break
    else
        echo
        echo "You selected: $alias_select"
        echo

        ALIAS=$(echo "${alias_select}" | awk '{print $1}')
        OPTION=$(echo "${alias_select}" | awk '{print $2}')

        echo "$ALIAS"
        echo "$OPTION"
    fi
    done

0 个答案:

没有答案