zoukankan      html  css  js  c++  java
  • shell 调试 2例

    1.#############

    #!/bin/ksh


      if [ ! -z $TNS_ADMIN ]; then
          export TNS_ADMIN=`dirname $TNS_ADMIN`
            else
                export TNS_ADMIN=$ORACLE_HOME/network/admin
                  fi

                    echo $TNS_ADMIN

    调试过程:

      if [ ! -z $TNS_ADMIN ]; then

    修改为

    if [ ! -z “$TNS_ADMIN” ]; then

    ref doc https://www.computing.net/answers/programming/error-test-argument-expected/18951.html

    Hi,

    When i execute the following script i'm getting test: argument expected error at if [ -z $file ]. Can someone plz advise.

    if [ -z $file ]
    then
    echo " DID NOT ENTER A FILE NAME "
    elif [ ! -f $file ]
    then
    echo " File ' $file ' Doesn't Exists In $PWD Directory "
    else
    echo " File ' $file ' Exists In $PWD Direcotry "
    fi

    Thanks.


     


    #1
    nails May 7, 2009 at 07:02:57

    Your script worked for me with no problems:

    #!/bin/ksh
    
    read file
    if [ -z "$file" ]
    then
       echo " DID NOT ENTER A FILE NAME "
    elif [ ! -f "$file" ]
    then
       echo " 	 File ' $file ' Doesn't Exists In $PWD Directory 
    "
    else
       echo " 	 File ' $file ' Exists In $PWD Direcotry 
    "
    fi
    
    BTW, it's always a good idea to include the shell invocation on line 1 of your script. I'd surround $file with double quotes "$file"
    
    Have you tried the extended test facility - two brackets instead of 1:
    
    
    #!/bin/ksh
    
    read file
    if [[ -z $file ]]
    then
       echo " DID NOT ENTER A FILE NAME "
    elif [[ ! -f $file ]]
    then



    2.#############


    #!/bin/ksh


    set -x


    export ORACLE_BASE=/opt/oracle11g
    export HOME=/home/oracle
    export ORACLE_HOME=/opt/oracle11g/product/11.1.0

    env

      LSNRLOG=`/opt/oracle11g/product/11.1.0/bin/lsnrctl <<EOF
        set current_listener yesinuat
          show trc_directory
            EOF`
                 
        echo "Listener Log File: $LSNRLOG"

      LSNRLOG=`/opt/oracle11g/product/11.1.0/bin/lsnrctl <<EOF | grep trc_directory | awk '{print $6"/"$1".log"}'
      set current_listener yesinuat
      show trc_directory
      EOF`
          echo "Listener Log File: $LSNRLOG"


    调试过程:

    crontab 在调用过程中,只有如下环境变量
    PATH=/usr/bin:/usr/sbin:.
    LOGNAME=oracle
    SHELL=/usr/bin/sh
    HOME=/home/oracle
    PWD=/home/oracle
    TZ=EAT-8


    所以需要在你的shell脚本开始加上
    ##################
    . /etc/profile
    export ORACLE_BASE=/opt/oracle11g
    export HOME=/home/oracle
    export ORACLE_HOME=/opt/oracle11g/product/11.1.0
    ##################

    3。######################

    man test


  • 相关阅读:
    尚未为数据源“RptDataSet_StatEC”提供数据源实例
    C3P0的详细配置说明(com.mchange.v2.c3p0.comboPooledDataSource)
    TopCoder SRM 581
    [ZJOI2012]灾难
    Codeforces 313
    [ZJOI2010]数字计数
    [ZJOI2010]排列计数
    [ZJOI2009]函数
    [ZJOI2009]假期的宿舍
    [ZJOI2008]骑士
  • 原文地址:https://www.cnblogs.com/feiyun8616/p/6548713.html
Copyright © 2011-2022 走看看