総数:13 今日:1 昨日:0

もくじ

function func_select_element_from_array()

#!/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

トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS