2016-05-12 5 views
0

エラーごとに異なるSFTP終了コードを取得する必要があります。例えば「そのようなファイルがないか、ディレクトリ」 - >終了コード= 552または550の代わりに、1 を返す、私は次のことを試してみたし、それが動作しませんでした:SFTP cozbatchで異なるエラーコードを返す方法

//A05FTP EXEC PROC=SFTPROC,COND=(0,NE)         
//COPSFTP.MYSTDIN DD *             
host="xpto.xpty.xptz"            
lzopts mode=text   
cd /home/apl/files/unl       
ls                  
a=`ls | wc -l`               
echo `$a`                 
echo $?                 
QUIT                  
//*  

とスプール出力は次のようになります。

cozsftp> lzopts mode=text       
mode=text           
cozsftp> lzopts mode=text       
mode=text           
cozsftp> cd /home/apl/files/unl  
Ý09.807¨ Invalid command.       
cozsftp> a=  1         
CoZBatchÝI¨: returning  rc=exitcode=1                   

誰でも手伝ってもらえますか?

答えて

0

あなたの問題は単にecho `$ a`です。目盛りの代わりに引用符で囲みます。

SFTPプロシージャ(SFTPROC)を使用する代わりに、より詳細なエラーチェックを行いたい場合は、BPXBATCHを使用して実行する簡単なスクリプトを書く方が良いと思います。スクリプトは同じSFTPコマンドを発行しますが、出力(STDOUT/STDERR)をキャプチャしてリダイレクトし、戻り値($?)とエラーメッセージに基づいて、あなたが望む可能性がある異常な状態をすべて確実に検出できます。

+0

私はSFTP procを実行する必要があります。私は一重引用符を持っていますが、それでも動作しません。ありがとうございました。 –

1

COZBATCHを使用すると、シェルスクリプトをJCLに組み込むことができるため、BPXBATCHを使用する必要はありません。 BPXBATCHは実際には貧弱なユーティリティです。あなたがCo:Zを使用しているなら、それはあなたにとって良いことです。

シェルコマンドを実行する場合は、!を使用する必要があります。エスケープ文字。

は!FWIW、SFTPは常にエラーに1を返します$

をエコー。あなたがそれを変更できるかどうかはわかりません。エラーはsysoutに記録されます。

関連する問題