58 lines
1.4 KiB
Bash
Executable File
58 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
CpArray_Mac() {
|
||
|
||
# Оператор Присваивания
|
||
|
||
echo -n 'eval '
|
||
echo -n "$2" # Имя массива-результата
|
||
echo -n '=( ${'
|
||
echo -n "$1" # Имя исходного массива
|
||
echo -n '[@]} )'
|
||
|
||
# Все это могло бы быть объединено в одну команду.
|
||
# Это лишь вопрос стиля.
|
||
}
|
||
|
||
declare -f CopyArray # "Указатель" на функцию
|
||
CopyArray=CpArray_Mac # Оператор Присваивания
|
||
|
||
Hype()
|
||
{
|
||
|
||
# Исходный массив с именем в $1.
|
||
# (Слить с массивом, содержащим "-- Настоящий Рок-н-Ролл".)
|
||
# Вернуть результат в массиве с именем $2.
|
||
|
||
local -a TMP
|
||
local -a hype=( -- Настоящий Рок-н-Ролл )
|
||
|
||
$($CopyArray $1 TMP)
|
||
TMP=( ${TMP[@]} ${hype[@]} )
|
||
$($CopyArray TMP $2)
|
||
}
|
||
|
||
declare -a before=( Advanced Bash Scripting )
|
||
declare -a after
|
||
|
||
echo "Массив before = ${before[@]}"
|
||
|
||
Hype before after
|
||
|
||
echo "Массив after = ${after[@]}"
|
||
|
||
# Еще?
|
||
|
||
echo "Что такое ${after[@]:4:2}?"
|
||
|
||
declare -a modest=( ${after[@]:2:1} ${after[@]:3:3} )
|
||
# ---- выделение подстроки ----
|
||
|
||
echo "Массив Modest = ${modest[@]}"
|
||
|
||
# А что в массиве 'before' ?
|
||
|
||
echo "Массив Before = ${before[@]}"
|
||
|
||
exit 0
|