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