免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1414 | 回复: 4
打印 上一主题 下一主题

linux的一个shell帮忙改改 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-17 16:14 |只看该作者 |倒序浏览
前 提:
        在mnt下面有2个文件夹:old new,其中old文件夹下面有可执行文件olp,new文件夹是空的
脚本运行时,如果发现new为空,则执行old文件夹下的olp;否则,当new文件夹下面有olp执行文件,并且该执行文件可以执行时,则将old文件中的olp备份成olp.old,否则不备份;

然 后:  

1、将new文件夹下面的olp执行文件复制到old文件夹下面;
2、运行从new文件下复制到old文件中的olp,如果/mnt/old/olp运行失败,则运行备份/mnt/old/olp.old
3、删除old文件中不能执行的olp,然后将备份olp.old恢复成olp。

我的shell为:

#!/bin/bash
if [ -e "/mnt/new/olp" ];then
        mv /mnt/old/olp /mnt/old/olp.old
        mv /mnt/new/* /mnt/old
        /mnt/old/olp || /mnt/old/olp.old
        rm -f /mnt/old/olp
        mv /mnt/old/olp.old /mnt/old/olp
        if [ "$?" != 0 ]; then
                /mnt/old/olp.old
        fi
    else
        /mnt/old/olp || /mnt/old/olp.old
fi

  我shell的不足,需要在第三行前,加一个判断/mnt/new/olp时候可以执行,可执行则运行后面的,如果不可执行则删除/mnt/new/olp,并运行备份/mnt/old/olp。

论坛徽章:
0
2 [报告]
发表于 2010-11-17 16:18 |只看该作者
  1. if [ -x "/mnt/new/olp" ];then
复制代码

论坛徽章:
0
3 [报告]
发表于 2010-11-17 16:28 |只看该作者
看的头晕,多几个判断就行了

论坛徽章:
0
4 [报告]
发表于 2010-11-17 16:46 |只看该作者
      

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
5 [报告]
发表于 2010-11-17 19:59 |只看该作者
前 提:
        在mnt下面有2个文件夹:old new,其中old文件夹下面有可执行文件olp,new文件夹是空的
脚本运行 ...
hawl326 发表于 2010-11-17 16:14



    你的表达意思相当含糊了。不知道是不是这样子的。
  1. #!/bin/bash
  2. files=`ls /mnt/new`
  3. if [ -z $files ]; then
  4.         sh /mnt/old/olp
  5. else
  6.         for file in $files
  7.         do
  8.                 if [ $files == 'olp' ]; then
  9.                         test -x /mnt/new/olp && {
  10.                         mv /mnt/old/olp /mnt/old/olp.old
  11.                         cp -f /mnt/new/olp /mnt/old/olp
  12.                         sh /mnt/old/olp || {
  13.                             sh /mnt/old/olp.old
  14.                             rm -f /mnt/old/olp
  15.                             mv /mnt/old/olp.old /mnt/old/olp
  16.                                 }
  17.                         }

  18.                 fi
  19.         done
  20. fi
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP