zoukankan      html  css  js  c++  java
  • Shell 编程注意点

    (一)判断语句

          [$# -lt 4 ]判断语句,格式[空格 比较对象1 比较符号 比较对象2]

          $# 启动脚本时携带参数个数;参数个数总数。

          $1 代表第一个参数。

          $? 最后一次执行名命令的退出状态,0成功,非0失败。

          -eq 等于;-ne 不等于;-gt 大于;-ge 大于等于; -lt 小于; -le 小于等于;

          数值比较 if [ “$1”  -eq “$2” ],其他比较不需要””引号。

          exit 0 正常退出。exit 1 异常退出,终止程序退出。

    (二) 判断参数

         if [ ! -d $1 ] 判断目录是否不存在

         -e 存在文件。 -d 目录。-L 符号链接。

        -r 可读。 -w 可写。 -x可执行。

        -f 常规文件。 -s 文件长度不为0。-h 软链接。

        文件1 -nt 文件2  如果文件1比文件2新,则为真。

        文件1 -ot 文件2  如果文件1比文件2旧,则为真。

        if [ -z “$pid” ] 判断变量的值是否为空。zero=0 为空返回0,为true。这个例子为单对括号,变量需要加双引号。

        if [[ -z $pid ]] 双对括号变量不需要加双引号。

         if [ -n “$pid” ] 判断变量的值是否为空。name=0 非空返回0,为true.为空返回1,为false。这个例子为单对括号,变量需要加双引号。

         if [[ -n $pid ]] 双对括号变量不需要加双引号。

    (三)sqlplus 结束符号

         sqlplus 用户名/密码@数据库名 <<!或者sqlplus 用户名/密码@数据库名 <<EOF

         EOF是end of file 缩写。

        sql语句结束后需要加!或者EOF.

    (四)ftp用法

        open $hostaddr

        user $username $userpassword

        cd /etl/date

        binary

        mget $grepstr*

        mdel $grepstr*

        put $1

       close

       by

       !

    (五)while read line用法。 为键盘左上方顿号,1旁边。

        while read line

        do

            tbname=echo $line | awk | -F’,’ ‘{print $1}’

            tbspace=echo $line | awk | -F’,’ ‘{print $2}’

           echo $tbname

           echo $tbspace

           sh xxxx

      done < t.ini

    t.ini文件如下

    T1,F1,1

    T2,F2,1

    (六) for 用法

      for((i=1;i<=$1;i++)); do

        echo “$i”

     sqlplus $DB<<EOF&

       @/etl/$2.sql $i

    (七)export 设置或显示环境变量

    export JAVA_HOME=/etl/bin

  • 相关阅读:
    Java 8实战之读书笔记五:超越Java 8
    Quartz的简单使用
    Quartz实现数据库动态配置定时任务
    Java解析Groovy和Shell的代码
    Spring学习笔记(3)——快速入门
    linux的防火墙端口配置
    气泡提示 纯CSS
    解决LINUX下SQLPLUS时上下左右键乱码问题
    redhat Enterprise Linux 6 VNC安装
    使用mount命令挂载CDROM
  • 原文地址:https://www.cnblogs.com/yuchunju/p/10670746.html
Copyright © 2011-2022 走看看