2011-12-19 56 views
-1

我想搜索所有在場的根目錄下的ksh腳本和取出的目錄路徑和檢查目錄是否創建/存不存在?這是示例ksh腳本?請幫忙嗎?shell編程或SED/AWK

cd /home/edwprod/cormis/bin 
if [ -f /home/edwprod/cormis/bin/churn.txt ] 
then 
echo " data not loaded in the table" 
exit 0 
else 
cd /home/edwprod/edw/cfg 
echo "XFB process is about to start" 
/home/edwprod/edw/cfg/AUTOMATE_XFB_ADVISOR.ksh 
fi 
/osmf/mgmt/scheduler/edw/ROMEO/bin >cat EDWADVCHR.ksh 
if [ -f /home/edwprod/cormis/bin/churn.txt ] 
then 
     cd /home/edwprod/cormis/bin/ 
     rm -f churn.txt 
fi 
/home/edwprod/cormis/bin/edw_etl_adv_churn_error.ksh CO_POP_ADVSR_DSCN_CHURN_I P 
+2

你的問題是沒有意義的。如果你有ksh的文件列表,從根目錄下,當然他們的目錄存在 - 怎麼可能文件,否則存在嗎?請嘗試更好地解釋。另外,該腳本與你的問題有什麼關係? – Mat

+0

可能是一些目錄的錯過了。例如/家庭/ edwprod/cormis/bin這個目錄中創建,但錯過了創造的/ home/edwprod/cormis /日誌或/家庭/ edwprod/EDW/cfg中。只有在執行這個腳本時,我纔會知道錯過了兩個目錄。我有道理嗎? – AruM

回答

0

這是一個腳本示例,用於測試目錄列表是否存在。
它會打印出丟失的目錄的名稱,並在退出一個非零返回代碼,如果他們中的一個缺失。

#! /bin/sh 
dirs_to_check="/home/edwprod/cormis/bin 
       /home/edwprod/cormis/log 
       /home/edwprod/edw/cfg" 

ok=1 
for dir in $dirs_to_check ; do 
    if [ ! -d $dir ] ; then 
     echo "Directory $dir does not exist" 
     ok=0 
    fi 
done 

if [ $ok -ne 1 ] ; then 
    exit 1 
fi 

如果需要,您可以修復此腳本以創建丟失的目錄。

這是不是真的有必要,但。你可以適應你所擁有的,並檢查cd工作:

cd /some/path 
if [ $? -ne 0 ] ; then 
    # you failed to cd: either the directory doesn't exist, 
    # or you have permission issues 
fi