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

时间:2021-09-07
本文章向大家介绍没有想到bash shell还可以这样写.txt,主要包括没有想到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

原文地址:https://www.cnblogs.com/chenguopa/p/15238091.html