我有一个脚本&它如下所示,
instant_client="/root/ora_client/instantclient_11_2"
output=`$instant_client/sqlplus -s HRUSER/HRUSER@TOMLWF <<EOF
set heading off
set feedback off
set lines 10000
set pagesize 10000
select count (1) from onboardingcandidates o, candidatedetails c where o.candidateid=c.candidateid and o.JOININGSTATUS='0091' and to_date(o.joiningdate)=to_date(sysdate+5);
EOF
exit
`
query=(`$instant_client/sqlplus -s HRUSER/HRUSER@TOMLWF <<EOF
set heading off
set feedback off
set lines 10000
set pagesize 10000
select o.candidateid from onboardingcandidates o, candidatedetails c where o.candidateid=c.candidateid and o.JOININGSTATUS='0091' and to_date(o.joiningdate)=to_date(sysdate+5);
EOF`)
i=0
echo "Throwing individual arrays:"
while [ $i -lt $output ]
do
a=${query[$i]}
echo Candidate[$i]=$a
i=$(($i+1))
done
输出:
Throwing individual arrays:
Candidate[0]=cand1
Candidate[1]=cand2
Candidate[2]=cand3
Candidate[3]=cand62
需要的输出
一切都很好。
我需要的是,我一次需要1个输出。
即。如果我运行上面的脚本,那么应该控制输出。
它应该在提示符上一次抛出1个输出。
这可能吗?
如果您需要更多PLZ请求。我希望我能用我的双打清楚
答案 0 :(得分:1)
所以你正在运行两个查询,一个用于获取结果数量,第二个用于获得结果。
如果您只想拥有一个查询,则可以迭代计算结果数。由于变量query
是一个数组,您可以使用:
${#query[*]}
作为结果行数,然后使用:
while [ $i -lt ${#query[*]} ]
作为循环条件。
如果您想一次显示一个结果,并且需要在它们之间输入,那么您可以在回显之后添加read
。
如果要显示特定的返回行,则假设该例程按原样调用,则要显示的行号作为第一个参数$1
传入,然后您可以使用:< / p>
a=${query[$1]}
echo Candidate[$1]=$a
如果您只想在该行显示结果而没有Candidate[]
文本,那么您可以回复:
echo ${query[$1]}
答案 1 :(得分:1)
如果我已正确理解你的问题,在你的echo语句打印输出之前,请把这行:
read dummy
这将提示您输入一些键,输入后将显示下一行输出。