Perl脚本:目录的有效性始终返回false

 l沈佩玉iVf 发布于 2023-01-29 15:10

我想使用perl脚本从文件中读取一些参数.我用grep命令查找thoses参数的值.

#!/usr/bin/perl

if( scalar @ARGV ==0)
{
  die "Number of argument is zero. Please use: perl   \n";
}


if( !-f $ARGV[0])     ## if the 1st arg is not a file
{
   die "$ARGV[0] is not a valid file type \nInput Arguments not correct!!! \n";
}

my $file_cnf=$ARGV[0];

my $DEST_PATH=`grep relogin_logs $file_cnf | cut -d "=" -f2`;

my $SRC_PATH=`grep dump_logs $file_cnf | cut -d "=" -f2`;
my $FINAL_LOG=`grep final_log $file_cnf | cut -d "=" -f2`;

print "\n$DEST_PATH \n $SRC_PATH \n $FINAL_LOG\n";


if ( !-d $DEST_PATH)
{
  die "$DEST_PATH is not a dir";
}

else
{
  print "ok";
}

我想读的文件是

cat cdc68.ini
reconn_interval=15
relogin_logs=/osp/local/home/linus/pravej/perlD/temp/relogin/
dump_logs=/osp/local/home/linus/pravej/perlD/temp/
final_log=/osp/local/home/linus/pravej/perlD/final_log/
Number_days=11

样本输出:

perl readconfig.pl cdc68.ini
/osp/local/home/linus/pravej/perlD/temp/relogin/
/osp/local/home/linus/pravej/perlD/temp/
/osp/local/home/linus/pravej/perlD/temp/relogin/
is not a dir at readconfig.pl line 26.

任何人都可以在这里暗示我做错了吗?请注意,我不想使用任何perl模块,如config或tiny.pm. 这些目录已经存在于我的unix系统中.提前感谢您的帮助

1 个回答
  • 您可以使用perl解析而不是shell utils

    my $file_cnf = $ARGV[0];
    
    open my $fh, "<", $file_cnf or die $!;
    my %ini = map /(.+?)=(.+)/, <$fh>;
    close $fh;
    
    print "\n$ini{relogin_logs} \n $ini{dump_logs} \n $ini{final_log}\n";
    

    2023-01-29 15:16 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有