免费注册 查看新帖 |

Chinaunix

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

[系统管理] 怎样在找到特定的脚本文件后直接执行它? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-06-15 17:08 |只看该作者 |倒序浏览
find  ./ -type f   
有一大串输出,里面有sh文件,也有perl文件,还有其他各类脚本

希望执行它。

给个例子
$ echo "echo 1" >./file1
$ echo "echo 2;exit 255" >./file2
$ echo "echo 3" >./file3
$ find ./ -type f | xargs -I {} bash {}
2
xargs: bash: exited with status 255; aborting

导致file1 和file3的不能执行,而且在执行时候不知道是哪个执行出错了
现在希望 根据find的输出直接判断是否能够执行,然后就直接执行(不仅是bash 还有其他的语言 perl等);并且执行过程中希望不因为中间的一个退出就直接退出全部;
且能够打印出执行出错的文件

各位有没有解决方法,谢谢

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
2 [报告]
发表于 2016-06-15 17:12 |只看该作者
回复 1# shallowmy

issue here "exit 255".... and what do you want to do?
   

论坛徽章:
0
3 [报告]
发表于 2016-06-15 17:24 |只看该作者
本帖最后由 shallowmy 于 2016-06-15 17:25 编辑

有些脚本中执行完毕,看  echo $?   就是255。。。
执行xargs 过程中就自己退出了。不知道是怎么回事

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
4 [报告]
发表于 2016-06-15 17:29 |只看该作者
回复 3# shallowmy

$ find ./ -type f | xargs -I {} bash {}
1
2
xargs: bash: exited with status 255; aborting

$ find ./ -type f -exec bash {} \;
1
2
3

   

论坛徽章:
0
5 [报告]
发表于 2016-06-15 17:58 |只看该作者
good 确实是这样的,exec是另起了一个进程就不会有问题异常退出了

可是 这些脚本并不一定都是bash  脚本,这样如何处理呢
且有些是可执行文件的,并不知道需要调用哪个。。

论坛徽章:
0
6 [报告]
发表于 2016-06-15 18:04 |只看该作者
good 确实是这样的,exec是另起了一个进程就不会有问题异常退出了

可是 这些脚本并不一定都是bash  脚本,这样如何处理呢
且有些是可执行文件的,并不知道需要调用哪个。。

论坛徽章:
0
7 [报告]
发表于 2016-06-15 18:08 |只看该作者
good 确实是这样的,exec是另起了一个进程就不会有问题异常退出了

可是 这些脚本并不一定都是bash  脚本,这样如何处理呢
且有些是可执行文件的,并不知道需要调用哪个。。

论坛徽章:
0
8 [报告]
发表于 2016-06-15 18:11 |只看该作者
有bug ⊙﹏

求职 : 技术支持/维
论坛徽章:
0
9 [报告]
发表于 2016-06-15 19:14 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
10 [报告]
发表于 2016-06-15 19:43 |只看该作者
find ./ -type f -exec  bash -c "echo file: {};./{}" \;
这个是找到的方法,直接执行它  
ok,感谢json与超人
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP