LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 544|回复: 1

正则表达式问题,大家帮忙看看,谢谢了!!!

[复制链接]
发表于 2005-1-28 13:18:15 | 显示全部楼层 |阅读模式
我想把windows分区都挂在上,又不想每次装系统都要去改fstab 就写了下面几句
#!/usr/bin/perl
@inf_disk=`fdisk -l`;
#print $inf_disk[1];
foreach (@inf_disk) {
        if (m#^(/dev/hd(\w\d)).*FAT32$#) {
                my $dir=/mnt/win$2;
                unless (-e $dir) {
                        system "mkdir /mnt/win$2";
                        }
                system "mount -t  vfat -o umask=0,iocharset=utf8, $1 /mnt/win$2";
        }
}


有两个问题
1.我已经有unless (-e $dir)就是目录存在就不创建,为什么每次运行还显示无法创建。。。文将已经存在。
2.为什么/mnt下有类似win5的文件夹,也会挂在里面呢,按理应该是/mnt/win$2,而$2是(\w\d)呀,为什么一个数字也能匹配?

谢谢!!
发表于 2005-2-2 13:26:41 | 显示全部楼层
在怀疑有问题的语句之前打印变量值看看. 我这运行了一下, 都没有错误. 另外,
system "mkdir /mnt/win$2" unless (-e $dir);
或是 (-e $dir) || system "mkdir /mnt/win$2";
会直观和简练些...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表