2011-12-19 20 views
-1

ルートディレクトリから存在するすべてのkshスクリプトを検索し、ディレクトリパスを取り出して、そのディレクトリが作成されているかどうかを確認しますか?これはサンプルkshスクリプトですか?これで助けてください?シェルプログラミングまたは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

ディレクトリが欠落している可能性があります。たとえば、/ home/edwprod/cormis/binのように、このディレクトリは作成されていますが、/ home/edwprod/cormis/logまたは/ home/edwprod/edw/cfgは作成されません。このスクリプトを実行するときだけ、私は2つのディレクトリが見つからないことを知ります。私は意味がありましたか? – AruM

答えて

0

以下は、ディレクトリのリストが存在するかどうかをテストするスクリプト例です。
不足しているディレクトリの名前が表示され、見つからない場合は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 
関連する問題