Guest User

Untitled

a guest
May 25th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.28 KB | None | 0 0
  1. #!/bin/bash
  2. merge () { # объявляем функцию merge
  3.   local arr_name1="$1[*]"  # объявляем две локальных переменных в которые
  4.                            # толкаем переданные в функцию массивы
  5.   local arr_name2="$2[*]"
  6.   local result=() # здесь будет результат            
  7.   local array=( `echo "${!arr_name1}" "${!arr_name2}"` ) # закидываем сюда
  8.                                                          # все что было в
  9.                                                          # массивах
  10.   find=0 # флаг показывающий существует элемент в результате или нет
  11.   for elem in ${array[@]}; do # пробегаем по все элементам
  12.       for uniq in ${result[@]}; do # пробегаем по всем результирующим
  13.                                # элементам
  14.       if [ "$uniq" = "$elem" ]; then # если элемент равен результирующему
  15.                                      # переключаем флаг на 1
  16.           find=1
  17.       fi
  18.       done
  19.       if [ $find -eq 0 ]; then # если элемент не найден среди результирующих
  20.                            # (флаг = 0), добавляем элемент в результат
  21.       result[${#result[@]}]=$elem
  22.       fi
  23.       find=0 # флаг переключаем на 0
  24.   done
  25.   echo "${result[*]}" # выводим результат
  26. }
  27.  
  28. array1=(1 2 3 3) # инициализируем 2 массива
  29. array2=(2 4 5 6)
  30. echo "array 1 = ${array1[*]}" # выводим их на экран
  31. echo "array 2 = ${array2[*]}"
  32. returned_array=(`merge array1 array2`) # вызываем функцию merge и передаем ей
  33.                                        # два массива. ловим в массив
  34.                                        # returned_array все что возвращает
  35.                                        # merge
  36.  
  37. echo "result = ${returned_array[@]}" # выводим на экран результирующий
  38.                                      # массив
  39. echo "============================================================="
Add Comment
Please, Sign In to add comment