Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- merge () { # объявляем функцию merge
- local arr_name1="$1[*]" # объявляем две локальных переменных в которые
- # толкаем переданные в функцию массивы
- local arr_name2="$2[*]"
- local result=() # здесь будет результат
- local array=( `echo "${!arr_name1}" "${!arr_name2}"` ) # закидываем сюда
- # все что было в
- # массивах
- find=0 # флаг показывающий существует элемент в результате или нет
- for elem in ${array[@]}; do # пробегаем по все элементам
- for uniq in ${result[@]}; do # пробегаем по всем результирующим
- # элементам
- if [ "$uniq" = "$elem" ]; then # если элемент равен результирующему
- # переключаем флаг на 1
- find=1
- fi
- done
- if [ $find -eq 0 ]; then # если элемент не найден среди результирующих
- # (флаг = 0), добавляем элемент в результат
- result[${#result[@]}]=$elem
- fi
- find=0 # флаг переключаем на 0
- done
- echo "${result[*]}" # выводим результат
- }
- array1=(1 2 3 3) # инициализируем 2 массива
- array2=(2 4 5 6)
- echo "array 1 = ${array1[*]}" # выводим их на экран
- echo "array 2 = ${array2[*]}"
- returned_array=(`merge array1 array2`) # вызываем функцию merge и передаем ей
- # два массива. ловим в массив
- # returned_array все что возвращает
- # merge
- echo "result = ${returned_array[@]}" # выводим на экран результирующий
- # массив
- echo "============================================================="
Add Comment
Please, Sign In to add comment