Help us understand the problem. What is going on with this article?

Bashで文字列の構造体をファンクションに渡したい

自身の備忘を兼ねて記載を行っています。
「とりあえず動いた」程度のソースなどもございますので参考程度にブラシアップ頂けると幸いです。
また、誤りやもっとよいコーディングやきれいな書き方があるなどご指摘頂けるととてもうれしいです。

今回のお題

別のお題で作成した構造体、ファンクションに渡してそちらで処理させたいと思い作成
(普通に引数として渡すと、第一引数、第二引数・・・etc となるため)

では、ソースです。

sample02.sh
#! /bin/bash

# 構造体
LOOP_LISTS=(
    ABCDEFG
    hijklmn
    1234567
    あいうえお
)

# 構造体を使って処理を行わせたいファンクション
function fLoopEcho () {
    # 引数の1つ目(構造体の名前)を変数「arrayname」に格納
    local arrayname=$1

    # evalコマンドを使って文字列を評価
    # (今回の場合は構造体名から構造体自体を取得するために利用)
    eval ref=\"\${$arrayname[@]}\"

    i=1
    # 構造体の中身をループで一つづつ表示
    for STRUCT_LIST in ${ref[@]}; do
        # 同一の処理(今回は表示)
        echo "${i}${STRUCT_LIST}"
        let i++
    done

    return
}

# メイン処理
# ファンクションの呼び出し元
# !!! 構造体としてではなく名前の文字列として渡す
fLoopEcho LOOP_LISTS

実行結果
$ sh sample01.sh
1:ABCDEFG
2:hijklmn
3:1234567
4:あいうえお
2番目指定:hijklmn
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away