0

私はunixの初心者です。しかし、クライアントから提供されたこのコードを理解する必要があります:(。コードが何をすべきかなど、コードの詳細をクライアントに尋ねようとしましたが、彼自身はわかりません。したがって、基本的に私は目的のコードで立ち往生していますわかりませんが、それが何をするのか理解する必要があります>.<.これは、これまでのコードから(コメントの形式で)[1] [2] [3]などを作成できたものです..私は持っていますコメント番号 [8] から [12] については疑問/手掛かりなし . [1] から [7] については、ほとんどが正しいと思いますが、間違っている場合は遠慮なく指摘してください。 teradata とこれに関連している可能性があります。私のコメントは太字で示しています{ *}

#!/usr/bin/ksh  **//[1] sets shell**        
set -x     **//[2]will this show the argument values before execution?**

l=$1       **//[3]$1,$2,$3 are the arguments with which this shell**
h=$2       **//is invoked.l= first argument h= second argument and**
k=$3       **//k=3rd argument.**

/export/home/someguy/daily_refresh/abc_mt_dt.ksh $l $h $k 
           **//[4] calling abc_mt_dt.ksh
             // with arguments l h and k**   

chmod 777 /export/home/someguy/daily_refresh/$k.txt 
           **// making $k.txt a read write n**
           **//executable.This im sure im right** 

while read line
   do
      echo $line |read a b c 
          **// [5] reads three values from keyboard and displays them as     
            //well as storing them in values a b and c**

      DATA_START_DT=$a 
          **// [6] variables DATA_START_DT DATA_END_DT ID set to the three** 
      DATA_END_DT=$b   **// values read from keyboard** 
      ID=$c

      echo $DATA_START_DT **//[7] displaying the values read from keyboard**
      echo $DATA_END_DT
      echo $ID

      rm -rf /export/home/someguy/daily_refresh/logs/abc_$DATA_END_DT.log 

      **//[8] rm -rf is to recursively remove files and folders .. 
          so what will this command do? will it remove all files and folders
          inside /export/home/someguy/daily_refresh/logs/ ?**

      bteq <<EOI > /export/home/someguy/daily_refresh/logs/abc_$DATA_END_DT.log 2>&1 

      **// [9] need explaination as to what this does.**
      .run file = /export/home/someguy/logon_caracal.bteq **//[10]**
      .MAXERROR 1; **//[11]**  
       DATABASE SOME_DATABASE; **//[12]**
4

2 に答える 2

1

[10] これには、.LOGON コマンドと、Teradata システムへの接続に使用される資格情報が含まれています。.LOGON TPDID/UserID, Password;

[11]MAXERRORは、割り当てられた値に達すると BTEQ スクリプトが中止されることを意味しますMAXERROR

[12]は、セッションまたは次のコマンドがDATABASE SOME_DATABASE検出されるまでのデフォルト データベースを設定します。DATABASEこれにより、オブジェクトがデフォルト データベース内に存在する場合、開発者は {database}.{object} で SQL を完全に修飾する必要がなくなります。

于 2012-09-27T13:05:05.373 に答える
1

[8]いいえ、 内のすべてのファイルとフォルダーが削除されるわけではありません/export/home/someguy/daily_refresh/logs/。というファイルのみを削除します/export/home/someguy/daily_refresh/logs/abc_$DATA_END_DT.log

[9]では、スクリプトがbteqコマンドを実行します。

<< EOIこちらのドキュメントです。その下のすべてのステートメントは、EOI という単語を含む行まで、bteqプログラムに渡されます。これらはbteqコマンドであり、シェル コマンドではありません。プログラムからのすべての出力とエラーbteqが に書き込まれ/export/home/someguy/daily_refresh/logs/abc_$DATA_END_DT.logます。

[10]これは、処理される SQL 要求と bteq コマンドを含むファイルです。

[11] 1 の MAXERROR は、処理中にエラー レベル 2 以上が発生した場合に bteq が終了することを意味します。

于 2012-09-27T10:22:16.373 に答える