LINUX.ORG.RU

История изменений

Исправление serg002, (текущая версия) :

run() {
	local arr=("${!1}")

        for x in $(seq 0 "${#arr[@]}"); do
        echo "${arr[${x}]}"

        # как правильно пройтись по аргументам типа $1, $2, чтобы сформировать переменные типа
        local "${arr[${x}]}"="${1}" # первая итерация
        local "${arr[${x}]}"="${2}" # первая итерация
        echo "${((x))}" # <-- вот тут проблема использовать x как индекс
    done

}

z2() {
    local x=1
    local y=2
    local z=3
    arr=(x y z)

    run 'arr[@]' \
        "${x}" \
        "${y}" \
        "${z}"
}

z2

Исходная версия serg002, :

run() {
	local arr=("${!1}")

        for x in $(seq 0 "${#arr[@]}"); do
        echo "${arr[${x}]}"

        # как правильно пройтись по аргументам типа $1, $2, чтобы сформировать переменные типа
        local "${arr[${x}]}"="${1}" # первая итерация
        local "${arr[${x}]}"="${2}" # первая итерация
        echo "${((x))}" # <-- вот тут проблема использовать x как индекс
    done

}

z2() {
    local x=1
    local y=2
    local z=3
    local x1=20
    local x2=30

    arr=(x y z)
    run 'arr[@]' \
        "${x}" \
        "${y}" \
        "${z}"
}

z2