Shell 編程注意點

(一)判斷語句sql

      [$# -lt 4 ]判斷語句,格式[空格 比較對象1 比較符號 比較對象2]數據庫

      $# 啓動腳本時攜帶參數個數;參數個數總數。spa

      $1 表明第一個參數。對象

      $? 最後一次執行名命令的退出狀態,0成功,非0失敗。get

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

      數值比較 if [ 「$1」  -eq 「$2」 ],其餘比較不須要」」引號。awk

      exit 0 正常退出。exit 1 異常退出,終止程序退出。變量

(二) 判斷參數ftp

     if [ ! -d $1 ] 判斷目錄是否不存在date

     -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

相關文章
相關標籤/搜索