総数:13 今日:1 昨日:0
#!/bin/bash
# function func_select_element_from_array()
# parameter1: name of given input array
# return value: array index for an element user selected
function func_select_element_from_array(){
local name_of_array=$1
eval local ref=\"\${${name_of_array}[@]}\"
local -a array=( ${ref} )
local -i size_of_array=${#array[@]}
#for element in "${array[@]}" ; do
# echo "${element}"
#done
local is_first_time="true"
local -i index=0
while :
do
echo "size of array: ${size_of_array}"
echo "elements of array:"
for (( index=0 ; index < ${size_of_array} ; ++index ))
do
echo " [${index}] ${array[${index}]}"
done
if [ ${is_first_time} = "true" ] ; then
echo -n "please select one of elements. (key in a number): "
is_first_time="false"
else
echo -n "please select one of elements again. (key in a number): "
fi
local text="empty"
read text
echo "your input: ${text}"
local text_except_num=`echo -n ${text} | sed -e "s/[0-9]//g"`
if [ "x" = "x${text}" ] || [ "x" != "x${text_except_num}" ] ; then
echo "数値ではないです"
else
echo "数値です"
index=$((${text}))
if [ ${index} -ge ${size_of_array} ] ; then
echo "無効な数値です"
else
break
fi
fi
done
return ${index}
}
declare -a items=("item00" "item01" "item02" "item03")
declare -i index_user_selected=999
func_select_element_from_array items
index_selected=$?
echo "user selected item: ${items[${index_selected}]}"
exit 0