具有的bash似乎不可用,创建简单的脚本用于通过它访问数组元素的index.It如下枚举数据类型在bash
#! /bin/bash
OK_INDEX=0
CANCEL_INDEX=1
ERROR_INDEX=2
CONFIRM_INDEX=3
SAVE_INDEX=4
EXIT_INDEX=5
declare -a messageList=("ok"
"cancel"
"error"
"confirm"
"save"
"exit")
printf "%s \n" ${messageList[$CANCEL_INDEX]}
从上方脚本
我需要声明正确索引变量检索从有效消息数组列表,但它很可能不是很方便,我要申报每个变量和them.It给指数是好的,如果变量通过像
enum index { OK_INDEX, CANCEL_INDEX, ERROR_INDEX,CONFIRM_INDEX,SAVE_INDEX,EXIT_INDEX};
autometically获得价值像C语言为
ENUM
数据类型
在C中,它是可能的
在bash中有没有其他的ENUM
?
我发现很多,但再没有succeded有尝试一些技巧来实现这一点如下
ENUM=(OK_INDEX CANCEL_INDEX ERROR_INDEX CONFIRM_INDEX SAVE_INDEX EXIT_INDEX)
maxArg=${#ENUM[@]}
for ((i=0; i < $maxArg; i++)); do
name=${ENUM[i]}
declare -r ${name}=$i
done
因此形成上面的代码片断我成功创建恒定的,但它似乎冗长的手段只是声明变量,我需要写5-10行代码不公平。
那么任何一个有另一种解决方案?
真的很感激你的帮助,但它也是一个技巧来声明变量写一些代码。在你的脚本中,你实现了'enum'功能,它给每个元素的索引。反正有新的想法。 –