How to return an array in bash without using globals?

后端 未结 18 2014
Happy的楠姐
Happy的楠姐 2020-11-29 21:36

I have a function that creates an array and I want to return the array to the caller:

create_array() {
  local my_list=(\"a\", \"b\", \"c\")
  echo \"${my_li         


        
18条回答
  •  渐次进展
    2020-11-29 21:59

    Useful example: return an array from function

    function Query() {
      local _tmp=`echo -n "$*" | mysql 2>> zz.err`;
      echo -e "$_tmp";
    }
    
    function StrToArray() {
      IFS=$'\t'; set $1; for item; do echo $item; done; IFS=$oIFS;
    }
    
    sql="SELECT codi, bloc, requisit FROM requisits ORDER BY codi";
    qry=$(Query $sql0);
    IFS=$'\n';
    for row in $qry; do
      r=( $(StrToArray $row) );
      echo ${r[0]} - ${r[1]} - ${r[2]};
    done
    

提交回复
热议问题