1 Востаннє редагувалося Пам'ять не може бути READ (23.02.2013 20:15:45)

Тема: Робота з масивами [Bash]

Давно цікавило таке питання:
Чи можна передати функції як аргумент - цілий архів, і чи можна повернути(return) зразу цілий масив ?

Ось наприклад на php:

$n = array(1,3,5);
 function getN($num)
 {
  echo $num[0];
 }
 getN($n);
 

Так працювати буде, виведе 1
а ось на баші:

#/bin/bash

 rds=(2 4 6)
  function getR()
  {
     isn=$1
      echo ${isn[1]}
  }
 getR ${rds[*]}
 

не виведе нічого.

Ну і аналогічно, з поверненням масиву

#/bin/bash
 
  function getR()
  {
     rds=(2 4 6)
     return ${rds[*]}
  }

 nm=$(getR)
 echo ${nm[0]}

Виведе наступне:

home.sh: line 6: return: too many arguments

2

Re: Робота з масивами [Bash]

Тут написали, що BASH не може використовувати структури даних як значення які повертає функція. Там же є приклади коду. Нажаль я нічого не тямлю в BASH.