代码之家  ›  专栏  ›  技术社区  ›  peter cooke

变量有空格分隔的值,我需要为下一个脚本获取一组3个值

  •  2
  • peter cooke  · 技术社区  · 13 年前

    我有一个shell脚本环境变量,由sql命令填充 sql命令返回3列的多条记录。我需要将每个记录传递给另一个shell脚本。

    QUERYRESULT=`${SQLPLUS_COMMAND} -s ${SQL_USER}/${SQL_PASSWD}@${SQL_SCHEMA}<<endl
    set heading off  feedback off
    select col1, col2,  col3
    from mytable
    where ......)
    order by ......
    ;
    exit
    endl`
    echo ${QUERYRESULT}
    

    输出一行以空格分隔的所有列,所有变量都保证不为空

     val1 val2 val3 val1 val2 val3 val1 val2 val3 ......
    

    我需要为每个记录调用以下内容

    nextScript.bash val1 val2 val3
    

    我也可以运行查询,但计算记录以确定需要调用nextScript.bash的次数。

    关于如何从一个包含多个3个参数的env变量开始执行下一个脚本,有什么想法吗?

    1 回复  |  直到 9 年前
        1
  •  2
  •   Taoufix    13 年前

    在不使用变量的情况下:

    ( ${SQLPLUS_COMMAND} -s ${SQL_USER}/${SQL_PASSWD}@${SQL_SCHEMA}<<endl
    set heading off  feedback off
    select col1, col2,  col3
    from mytable
    where ......)
    order by ......
    ;
    exit
    endl
    ) | while read line;do echo $line; done
    
    推荐文章