--//昨天看脚本,我发现里面一些细节,通过例子说明.
$ echo "x /rncc dba 11,133 *kdbr[0]" | rlbbed
BBED: Release 2.0.0.0.0 - Limited Production on Mon Sep 6 21:20:36 2021
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
************* !!! For Oracle Internal Use only !!! ***************
BBED> set count 8192
COUNT 8192
BBED> set width 300
WIDTH 300
BBED> rowdata[66] @8162
-----------
flag@8162: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@8163: 0x01
cols@8164: 3
col 0[2] @8165: 10
col 1[10] @8168: ACCOUNTING
col 2[8] @8179: NEW YORK
BBED>
--//编辑测试脚本如下test1.sh
#! /bin/bash
NUMROWS1=$(rlbbed <<EOF|
p dba 11,133 kdbh.kdbhnrow
EOF
grep kdbhnrow |awk ‘{print $5}‘)
echo $NUMROWS1
NUMROWS2=$(rlbbed <<EOF|grep kdbhnrow |awk ‘{print $5}‘
p dba 11,133 kdbh.kdbhnrow
EOF
)
echo $NUMROWS2
NUMROWS4=$( echo p dba 11,133 kdbh.kdbhnrow | rlbbed | grep kdbhnrow |awk ‘{print $5}‘)
echo $NUMROWS4
rlbbed <<EOF|
p dba 11,133 kdbh.kdbhnrow
EOF
grep kdbhnrow
--//第一种写法好奇怪,中间还空了一行,居然执行也是正确的.
--//一般我喜欢使用EOF喜欢第2种写法.
--//我最后特意测试不使用括号赋值的方式,居然也可以执行成功!!这样的语法非常容易产生歧义性,特别指grep 单独一行.
--//执行结果如下:
$ ./test1.sh
4
4
4
BBED> b2 kdbhnrow @102 4