【问题标题】:Reading the values from a CSV and passing it to another function [using Shell Scripting]从 CSV 读取值并将其传递给另一个函数 [使用 Shell 脚本]
【发布时间】:2017-10-18 06:59:07
【问题描述】:

我正在尝试读取 csv 的内容并使用 shell 脚本将其传递给另一个函数。我是 shell 脚本的新手,不知道该怎么做。

ConvertedCSVpath="/home/test/Desktop/Outfile.csv"

    converttoCSV()
    {
    for i   in /home/test/repos/pgp-automation/TestSuite/Suite1495088054448/Outfile.xlsx; 
    do  libreoffice --headless --convert-to csv "$i" ; 
    done
    IFS=,
    while read Tstcase OrderID MID
    do 
        echo "Testcase: -> $Tstcase"
        echo "OrderID: $OrderID"
        echo "ID: $MID" 
    done < $ConvertedCSVpath
    }

已转换为 CSV 文件

TestCase_002-,1495088066891,atoRef79606157945546 TestCase_002,218271828172187,C192819821981

    PassVariable()
    {
    echo The order ID is $OrderID
    }

    converttoCSV
    PassVariable

我需要获取 OrderID 并在 PassVariable 函数中一一使用。即,首先应该将 1495088066891 传递给 PassVariable,然后将 218271828172187 传递给 PassVariable 并打印。我该怎么做?

【问题讨论】:

    标签: bash shell unix scripting sh


    【解决方案1】:

    我不确定你想达到什么目的,但如果问题是如何调用带有参数的 bash 函数以及如何在被调用函数中使用它,那么你就是这样做的:

    PassVariable() {
      echo $1 # Print first parameter
    }
    
    PassVariable "$OrderID"
    

    更多信息请参见:Passing parameters to a Bash function

    【讨论】:

    • 我已经想通了。在这种情况下,最好使用 awk IFS 和 While 循环。不管怎么说,多谢拉。 :)
    猜你喜欢
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 2012-12-27
    • 2019-11-12
    • 2011-12-18
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    相关资源
    最近更新 更多