2010-11-23 11 views
3

Oracleコンカレント・プログラムを使用してKSHシェルでビルドしたHOSTスクリプトを実行しようとしています。Oracleコンカレント・プログラムを使用してUNIXシェル・スクリプトを実行中に発生する問題

次のように私のテストスクリプトは次のとおりです。

echo "System Parameters passed by Concurrent Manager" 
echo "+--------------------------------------------+" 
XXWIN_PROGRAM=$0 
XXWIN_LOGIN=$1 
XXWIN_USERID=$2 
XXWIN_USERNAME=$3 
XXWIN_REQUEST_ID=$4 
echo "XXWIN_PROGRAM :"$XXWIN_PROGRAM 
echo "XXWIN_LOGIN  :"$XXWIN_LOGIN 
echo "XXWIN_USERID  :"$XXWIN_USERID 
echo "XXWIN_USERNAME :"$XXWIN_USERNAME 
echo "XXWIN_REQUEST_ID :"$XXWIN_REQUEST_ID 

shift 4 
echo "" 
echo "User Parameters passed by Concurrent Manager" 
echo "+------------------------------------------+" 
echo "1 :"$1 
echo "2 :"$2 
echo "3 :"$3 
echo "4 :"$4 
echo "5 :"$5 
echo "6 :"$6 
echo "7 :"$7 
echo "8 :"$8 
echo "9 :"$9 
echo "" 

# Generic Script Begins 
# Declaring Constants, Data File Path, Control File Path etc 

CTL_FILE_NAME=$1  # Control File Name(s) 
CTL_FILE_PATH=$2  # Control File Path 
DATA_FILE_NAME=$3 # Data File Name(s) 
DATA_FILE_PATH=$4 # Data File Path 
COMPONENT_NAME=$5 # Interface Component Name 
SEQ_VALIDATION=$6 # Sequence Name 
SUPPORT_EMAIL= $7 # Support e-mail(s) List 

# Printing the User Parameters 
echo "1 :"$CTL_FILE_NAME 
echo "2 :"$CTL_FILE_PATH 
echo "3 :"$DATA_FILE_NAME 
echo "4 :"$DATA_FILE_PATH 
echo "5 :"$COMPONENT_NAME 
echo "6 :"$SEQ_VALIDATION 
echo "7 :"$SUPPORT_EMAIL 

# Assigning the Archive, IN and Prog Dir Paths 
ARCHIVE_DIR="$XXWIN_TOP/bin/TEMP/archive" 
XXWIN_IN_DIR="$XXWIN_TOP/bin/TEMP/in" 
XXWIN_PROG_DIR="$XXWIN_TOP" 

# Printing the directories 
echo "Archive Directory :" $ARCHIVE_DIR 
echo "IN Directory :" $XXWIN_IN_DIR 
echo "Program Directory :" $XXWIN_PROG_DIR 

i=10 
k=5 
j=`expr $i + $k` 
echo $j 

echo $i 

echo "Out of Concurrent Program" 

シェルスクリプトのプログラム名は ".prog" で終わる

私は次のパラメータを使用して同時リクエストを実行しています: alt text

プログラムは正常に完了しましたが、次のログメッセージが表示されます。 alt text

alt text

私は#!/usr/bin/kshを使用していた場合、私はその外でホストファイルを実行していますので、プログラムがエラーで完了します。ログから、スクリプトでスペースが遭遇したときに、「コマンドが見つかりません」というエラーが表示されます。また、私は単純な追加をしていることがわかるので、それも認識されません。

この点に関するお手伝いがあります。

感謝:)

答えて

1

スクリプトを作成するには、Windowsシステム上のエディタを使用するように起こるのですか?これは、ラインフィードだけのUnixフォーマットではなく、すべての行末に復帰改行+改行文字を置きます。それはスクリプトの実行を混乱させます。 Unixシステムは通常、ファイルを変換するために "dos2unix"のようなコマンドを持っています。

これはそうでない場合は、コマンドラインから手動でスクリプトを実行して、動作することを確認します。

+0

私はノートパッドではなくエディタとしてNotepad ++を使用しています。私は500行のコードを開発し、UNIXボックスから完全に実行しています。しかし、私はOracleアプリケーションから実行することができません:(。 – Arun

0

CAT -vt <filename>を使用してファイルを読み取ろうとしたとき、ファイルに^ Mや^ Iなどの特殊文字が含まれていることがわかりました。これはファイル転送モードのためかもしれません(しかし、私はASCIIモードで転送されましたが、まだ特殊文字が現れています)。

私はVIエディタを開いて同じスクリプトを貼り付けました。ファイルを保存し、スクリプトを実行しようとしましたが、うまくいきました。

私はまだ特殊文字がどのように表示されたのか分かりませんでした。私は編集者としてメモ帳++を使いました。

0

VIまたはCATのいずれかに特殊文字が表示された場合、Linux/Unixとの互換性への変換は完全には行われません。しばしば多くのソリューションがあります。おそらくNotepad ++が原因です。そうでないかもしれない。 OS自体にスクリプトを書いているだけでなく、FTPは必要ありません(すでに大きな利点はありません)。しかし、これらの厄介なコントロールM文字に直面する必要はありません。 ASCII変換が失敗することがあります。別のFTPプログラムを試すこともできます。また、上記のように、すべてを排除する。

関連する問題