ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [20210906]没有想到bash shell还可以这样写.txt

[20210906]没有想到bash shell还可以这样写.txt

原创 Linux操作系统 作者:lfree 时间:2021-09-07 09:00:19 1 删除 编辑

[20210906]没有想到bash shell还可以这样写.txt

--//昨天看脚本,我发现里面一些细节,通过例子说明.

$ 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



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-2790710/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    3031
  • 访问量
    6775265