2011-12-19 54 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