簡體   English   中英

Bash腳本錯誤,無法在Solaris中檢查現有文件

[英]Error in Bash script to check existing file in Solaris

我可以在Solaris上編譯oracle表單並創建腳本。 該腳本應檢查是否創建了.fmx,然后刪除.err文件。 這是我的腳本,但是我收到以下錯誤

刪除錯誤文件的代碼

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]:存在:找不到[沒有這樣的文件或目錄]

常規文件測試使用"-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

這可能是您要執行的操作,但是尚不清楚.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

“ .err”是文件,但是您在此處列出“ err”。 這里還有其他問題:

  1. 導出FORMS_PATH =導出FORMS_PATH = / apps / apps / frmcompile / cmteam / hla

    替換為“ FORMS_PATH = / apps / apps / frmcompile / cmteam / hla”

    1. 用於ls $FORMS_PATH/*.fmx 文件包含每個以“ .fmx”結尾的文件
    2. 如果存在“ $ FILE / .fmx”; 結果例如在“ /apps/apps/frmcompile/cmteam/hla/blaba.fmx/ .fmx”中具有外殼擴展和“ exist”存在-這是什么-嘗試“ test”或“ []”。
    3. rm $ FILE / err在子文件夾中顯示“ /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

湯姆

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM