LoveUnix » 编程开发 & Rational » 请大家帮忙看一下两个作业题(急呀!!)谢谢~~
让LU留住您的每

一天 让LU博客留住您的每一天
2005-11-15 21:41 mecorn
请大家帮忙看一下两个作业题(急呀!!)谢谢~~

1、怎样编写一个shell,该shell用以扫描登录用户的默认目录,对所有以“.a”为后缀的文件合并到用户默认目录下“total.a”文件中,并删除原来的文件?



2、编写一个shell,对指定目录,检查其中文件属性是否为777,如发现则提示该文件有危险的属性,并改为754。



谢谢~~

2005-11-16 17:07 jinxin112688
第一个问题 (请大家指正,刚学的):
#!/bin/bash/
TARGET=total.a
for file in `finger | awk '{print $1}' | uniq | sed '1d' ` ; do
       if [[ $file != "root" ]] ; then
             cd   "/home/"$file
       else
             cd   ~
        fi

####  search ".a" file
        touch    $TARGET
        for   $file_a  in  `ls  *.a `; do
              if  [[ $file_a == "$TARGET" ]] ; then
                     continue;
              fi
              echo    $file_a
              ld    -r   -o   $file_a         $TARGET
              rm   -f   $file_a
          done
done

2005-11-18 09:11 mecorn
谢谢

谢谢,非常感谢.我也是一个新手,对linux有很大的兴趣但一窍不通,可不可以加一下qq,大家一起共同研究,共同进步.我QQ:253097940

2006-3-28 22:52 zhouzhanguo
不用这么麻烦吧.
1.
until false
do
for file in `find $DIR -name *.a -print|sed -d '/total/d'`
do
cat $file >>$DIR/total.a
done
sleep 30
done

2.find $DIR -perm 777 -print|xargs chmod 754
若要定时扫描,可以加循环
while true
do
find $DIR -perm 777 -print|xargs chmod 754
sleep 30
done

没有测过啊,哈哈

[[i] 本帖最后由 zhouzhanguo 于 2006-3-28 22:59 编辑 [/i]]

2006-4-27 23:37 菜菜鸟
cd ~
TARGET=`ls -a | grep *.a`
for target in `~/*.a`
        do cat $target >> ~/total.a
        status = $?
        if [ $status = 0 ];then
                rm $target
        else
                exit
        fi
done
我也没测过,好久没写了,呵呵。

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.