Искусство программирования на языке сценариев командной оболочки


Программирование на языке сценариев командной оболочки - стр. 288


echo echo "Первое число: " read first

echo echo "Второе число: " read second echo

retval=`sum_and_product $first $second` # Получить результат. sum=`echo "$retval" | awk '{print $1}'` # Первое значение (поле). product=`echo "$retval" | awk '{print $2}'` # Второе значение (поле).

echo "$first + $second = $sum" echo "$first * $second = $product" echo

exit 0

  • Следующая хитрость -- передача массива в функцию, и "возврат" массива из функции.

    Передача массива в функцию выполняется посредством записи элементов массива, разделенных пробелами, в переменную, с помощью операции подстановки команды. Получить массив обратно можно, следуя вышеописанной стратегии, через вывод на stdout, а затем, с помощью все той же операции подстановки команды и оператора ( ... ) -- записать в массив.

    Пример 33-12. Передача массива в функцию и возврат массива из функции

    #!/bin/bash # array-function.sh: Передача массива в функцию и... # "возврат" массива из функции

    Pass_Array () { local passed_array # Локальная переменная. passed_array=( `echo "$1"` ) echo "${passed_array[@]}" # Список всех элементов в новом массиве, #+ объявленном и инициализированном в функции. }

    original_array=( element1 element2 element3 element4 element5 )

    echo echo "original_array = ${original_array[@]}" # Список всех элементов исходного массива.

    # Так можно отдать массив в функцию. # ********************************** argument=`echo ${original_array[@]}` # ********************************** # Поместив все элементы массива в переменную, #+ разделяя их пробелами. # # Обратите внимание: метод прямой передачи массива в функцию не сработает.

    # Так можно получить массив из функции. # ***************************************** returned_array=( `Pass_Array "$argument"` ) # ***************************************** # Записать результат в переменную-массив.

    echo "returned_array = ${returned_array[@]}"




    Начало  Назад  Вперед



    Книжный магазин