57 lines
1.4 KiB
Bash
Executable File
57 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
|