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

标签 bash ksh

我有一个由 sql 命令填充的 shell 脚本环境变量 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 个参数的单个环境变量到执行下一个脚本,有什么想法吗?

最佳答案

不使用变量:

( ${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

关于bash - 变量具有空格分隔的值我需要为下一个脚本获取 3 个值的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15667442/

相关文章:

linux - 在配置文件中读取最干净/最简单的方法是什么

ksh - 在 ksh93 中使用递归时的奇怪行为

linux - 如何将值附加到变量中并避免重复值?

linux - 检查 UNIX 目录中是否存在两个文件

bash - 使用 Bash 显示进度指示器(微调器)

linux - 使用点空格与点斜线执行文件

macos - setenv 在 mac 上等效?

ruby - 是否可以从 ruby​​ 脚本导出环境属性?

unix - 将特殊字符传递到 telnet Unix

unix - 如何从 ksh 脚本执行 Derby DB 的 SQL 脚本