• shell编程


            打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用 php 写 shell 脚本,扩展名就用 php 好了。

    #! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。

    echo 命令用于向窗口输出文本。

    #!/bin/bash
    #Modify below variables if you need.
    user= 用户名(大写)
    hottime='2020-11-04 12:05:57'
    #Do not modify below variables.
    oracle_uid=`awk -F : '/oracle/ {print $3}' /etc/passwd`
    if [ `id -u` -ne $oracle_uid ];then
    echo 'Use ORACLE account to run this scripts!'
    exit 1
    fi
    sqlplus -S / as sysdba <<EOF >>/dev/null
    set pages 0
    set feedback off
    set long 99999
    spool /tmp/fulltext.txt
    select sql_fulltext
    from v$sqlarea
    where parsing_schema_name = '$user'
    and last_load_time >
    to_date('$hottime', 'yyyy-mm-dd hh24:mi:ss');
    spool off
    spool /tmp/aobjs.txt
    select object_name from dba_objects where object_type = 'TABLE' and owner = '$user';
    spool off
    exit
    EOF
    hot=$(cat /tmp/fulltext.txt|egrep -oi $(str1=""; for i in `cat /tmp/aobjs.txt` ;do str1=$str1"|"$i;done ;echo $str1)|tr a-z A-Z|sort|uniq|wc -l)
    aobjs=`cat /tmp/aobjs.txt|wc -l`
    echo "scale=2;$hot/$aobjs"|bc
    #clean
    rm -rf /tmp/aobjs.txt /tmp/fulltext.txt

    chmod +x ./test.#使脚本具有执行权限

    ./test.sh     #执行脚本

    注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。

    学而不思则罔,思而不学则殆
  • 相关阅读:
    PCA理论与实践
    深度挖掘客户价值—分析角度篇
    多元线性回归理论与实践
    数据分析框架
    Growing转化的每一步(笔记整理)
    kmeans算法原理以及实践操作(多种k值确定以及如何选取初始点方法)
    mysql查询优化(持续更新中)
    mysql 各种运算对于null值的处理
    left join与on,where 结合一起用的异同
    Spark(十一) -- Mllib API编程 线性回归、KMeans、协同过滤演示
  • 原文地址:https://www.cnblogs.com/linyu51/p/13964583.html
Copyright © 2020-2023  润新知