将while循环记录传递给函数[重复]

Posted

技术标签:

【中文标题】将while循环记录传递给函数[重复]【英文标题】:pass the while loop record to function [duplicate] 【发布时间】:2020-05-15 05:03:42 【问题描述】:

我如何将参数传递给 linux 中的函数。 我在一个文件中逐行reding并在后台运行esch记录

while read -r record
    do
        reccount=$(( reccount + 1 ))
        #function call  
        proceed_tasks_function(record) &
done

到函数

proceed_tasks_function(/*take the record from function call*/)

### parse input record

          contact_email=`echo "$record" | cut -f5 -d ''`
              echo "contact email is $contact_email" 
          credit_card_id=`echo "$record" | cut -f6 -d ''`
              echo "credit card id is $credit_card_id"
          ref_nr=`echo "$record" | cut -f7 -d ''`
              echo "reference nr is $ref_nr"
          cny_cd=`echo "$record" | cut -f8 -d ''`
              echo "country code is $cny_cd"
          lang=`echo "$record" | cut -f9 -d ''`
              echo "language is $lang"
          pmt_ir=`echo "$record" | cut -f13 -d ''`
              echo "payment ir is $pmt_ir"

【问题讨论】:

【参考方案1】:

shell 中的函数与任何其他命令一样:参数仅列在命令之后,不需要或不允许使用括号。

while read -r record
    do
        reccount=$(( reccount + 1 ))
        proceed_tasks_function "$record" &
done

【讨论】:

在函数内部,您可以使用 $1、$2、$* 引用传递的参数,语法与脚本参数相同

以上是关于将while循环记录传递给函数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

从无限的while循环中在函数之间传递数据

如何遍历表的列名并将值传递给 MSSQL while 循环中的 UDF

while语句

while循

循环结构 while 和 do while 方法使用

如果函数内部的条件失败,则跳过 bash while 循环