exec的多种运用
来源:互联网 发布:ecshop 2.7.3 php版本 编辑:程序博客网 时间:2024/06/08 10:14
本文作者笔记体系归档:http://blog.csdn.net/qq_32642039/article/details/78489918
一、exec简介
1.
2.fork、exec和source的区别
(1)fork
fork是linux的系统调用,用来创建子进程(child process)。子进程是父进程(parent process)的一个副本,从父进程那里获得一定的资源分配以及继承父进程的环境。子进程与父进程唯一不同的地方在于pid(process id)。
环境变量(传给子进程的变量,遗传性是本地变量和环境变量的根本区别)只能单向从父进程传给子进程。不管子进程的环境变量如何变化,都不会影响父进程的环境变量。
(2)source
使用 source 方式运行 script 时, 就是让 在当前进程中执行参数文件中的各个命令, 而不是另起子进程(sub-shell)。 由此可见source执行的时候是当前shell环境下执行,执行完成后把结果返回给当前shell。
(3)exec
a)exec命令用于调用并执行指令的命令。exec命令通常用在shell脚本程序中,可以调用其他的命令。在当前终端中使用命令,则当指定的命令执行完毕后会立即退出终端。
在终端中[root@iZgf10elo5bco4Z ~]# su xingcheng[xingcheng@iZgf10elo5bco4Z root]$ exec ls[root@iZgf10elo5bco4Z ~]# 在shell脚本中[root@iZgf10elo5bco4Z ~]# cat test.sh#!/bin/basha=1echo $aexec echo '1'a=2echo $a[root@iZgf10elo5bco4Z ~]# sh -x test.sh + a=1+ echo 11+ exec echo 11
b)使用 exec 方式运行script时, 它和 source 一样, 也是让 script 在当前进程中执行, 但是 process 内的原代码剩下部分将被终止. 同样, process 内的环境随script 改变而改变.不过,要注意一个例外,当exec命令来对文件描述符操作的时候,就不会替换shell,而且操作完成后,还会继续执行接下来的命令。
例如
[root@iZgf10elo5bco4Z ~]# cat test.sh && sh test.sh#!/bin/basha=1exec > text.loglspwdecho "终端未退出"exec > /dev/pts/0ls[root@iZgf10elo5bco4Z ~]# cat text.log 1.sh2.sh2.txtprocess.shtempfd1test.shtext.log/root终端未退出
二、exec的常见用法
1.exec与文件描述符
2.find 和exec集合使用
(1)在当前目录下(包含子目录),查找所有txt文件并找出含有字符串”bin”的行
find ./ -name “*.txt” -exec grep “bin” {} \;
(2)在当前目录下(包含子目录),删除所有txt文件
find ./ -name “*.txt” -exec rm {} \;
- exec的多种运用
- 运用Python实现多种排序的方法
- ListView BaseAdapter 多种布局 和 viewholder的运用
- [蜂鸣器不简单]单片机中蜂鸣器的多种运用(长响,短响,多次响)
- Android之RadioButton和RadioGroup结合Dialog的多种运用详解
- “玲珑杯”ACM比赛 Round #4 G -- See car【多种容器的运用】
- 灵活运用ParameterSetName于多种使用场景
- UVA 230 Borrowers(多种STL运用)
- 多种AI技术的综合运用和强大的计算能力共同造就了沃森(节选)
- exec与 exec "sp_executesql" 的用法
- Runtime的exec方法
- Runtime.exec()的使用
- exec 的用法
- exec 命令的用法
- linux exec的用法
- Runtime.exec()的使用
- EXEC的使用
- 关于exec的例子
- AndroidStudio最详细JNI教程
- 停更通知
- android添加以太网ethernet方法 android框架添加
- 加载外部图片的三种方法
- 扫描识别工具Dynamic Web TWAIN使用教程:如何自定义Web TWAIN对象
- exec的多种运用
- 26. Remove Duplicates from Sorted Array 已排序数组去重
- git超级简易教程文档
- AndroidStudio3.0输入法不随光标走解决方案
- C++ 中通过GetAdaptersInfo获取网卡配置和Ip地址信息
- cvFilter2D了解和使用
- Kaggle实战学习 笔记
- unity开发 斗地主算法—判断手里的牌是否有大于上家的牌(是否显示要不起按钮)
- const 与 指针