2016-08-11 9 views
0

im gongを使用してSolaris上でOracleフォームをコンパイルし、スクリプトを作成します。 スクリプトは.fmxが作成されているかどうかを確認し、.errファイルを削除します。 は、ここに私のスクリプトですが、私はエラーの下にエラーファイルを削除するSolarisの既存ファイルをチェックするBashスクリプトでエラーが発生しました。

コードを受け取った

export FORMS_PATH=export FORMS_PATH=/apps/apps/frmcompile/cmteam/hla 
for FILE in `ls $FORMS_PATH/*.fmx`; do 

    if exist "$FILE/*.fmx"; 
    then 
     rm $FILE/err 
    fi 
done 

エラーが発生しました

rmerr.sh [3]:存在:ありません見つかりました[そのようなファイルやディレクトリはありません]

+1

は、[編集ヘルプ](http://stackoverflow.com/editing-help)をご覧ください – Cyrus

+0

見てみてくださいは:のhttp: //www.shellcheck.net/ – Cyrus

+0

あなたは正確に何をしたいのかを説明してください。シェルプログラミングミスを修正した後でも、スクリプトのロジックに欠陥があります。 – jlliagre

答えて

0

Regul ARファイルのテストが"-f"

export FORMS_PATH=export FORMS_PATH=/apps/apps/frmcompile/cmteam/hla 
for FILE in `ls $FORMS_PATH/*.fmx`; do 
    # True if file exists and is a regular file. 
    if [ -f "$FILE/*.fmx"]; then 
     rm $FILE/err 
    fi 
done 
0

を使用して行われますこれは、あなたが何をしたいのかかもしれませんが、.FMXおよび.ERRファイルがどこにあるか不明である:

 
export FORMS_PATH=/apps/apps/frmcompile/cmteam/hla 
for FILE in $FORMS_PATH/*.fmx; do 
    b=$(basename $FILE) 
    [ -f "$b" ] && rm ${b%fmx}err 
done 
0

「.ERR」であり、ここでは "err"を挙げています。ここ 他のいくつかの問題:

  1. 輸出FORMS_PATH =輸出FORMS_PATH = /アプリケーション/アプリケーション/ frmcompile/cmteam/HLA

    は "FORMS_PATH = /アプリケーション/アプリケーション/ frmcompile/cmteam/HLA"

    と交換します
      のFILEの
    1. ; do FILEには、 "$ FILE/.fmx"が存在する場合、 ".fmx"で終わるすべてのファイルが含まれます。
    2. ; 結果 "/apps/apps/frmcompile/cmteam/hla/blaba.fmx/ .fmx"にシェル展開と "exist"があります - これは "test"か "[]"です。
    3. RM $ファイルは、/サブフォルダに/apps/apps/frmcompile/cmteam/hla/blaba.fmx/errも.err」の 結果を誤ると、あなたは好きではないこと、または?

したがって、この最高使用:

#!/bin/sh  OR #!/bin/bash 
FORMS_PATH=/apps/apps/frmcompile/cmteam/hla 

for fmx in $FORMS_PATH/*.fmx; do 

    # remove your files ending in .err instead of .fmx 
    /bin/rm "${fmx%.fmx}.err # only valid with bash 

done 

トム

関連する問題