linux的exec命令其实是bash的一个内建命令,可以通过man builtin页面来查看所有bash内建命令的帮助文档,并且exec还可以用在文件描述符当中。

shell中的exec两种用法:
1.exec命令;命令代替shell程序,命令退出,shell 退出;比如 exec ls
2.exec文件重定向,可以将文件的重定向就看做是shell程序的文件重定向,比如exec 5</dev/null;exec 5<&-

常用格式:exec [-cl] [-a name] [command [arguments]]
如果指定了command,它将用当前的command替换当前的shell, 但是不会产生新的进程,如果有arguments参数,将会作为command的参数。
选项:
-l:将会在传递给command命令的第0个参数前面加上一个dash(‘-’),有点像在用su的时候(su - username)
-c:将会使command命令在一个空环境中执行
-a:shell会将name作为第0个参数传递给要执行的command命令

shell的内建命令exec将并不启动新的shell,而是用要被执行命令替换当前的shell进程,并且将老进程的环境清理掉,而且exec命令后的其它命令将不再执行。因此,如果你在一个shell里面,执行exec ls那么,当列出了当前目录后,这个shell就自己退出了,因为这个shell进程已被替换为仅仅执行ls命令的一个进程,执行结束自然也就退出了。为了避免这个影响我们的使用,一般将exec命令放到一个shell脚本里面,用主脚本调用这个脚本,调用点处可以用bash a.sh,(a.sh就是存放该命令的脚本),这样会为a.sh建立一个sub shell去执行,当执行到exec后,该子脚本进程就被替换成了相应的exec的命令。
source命令或者".",不会为脚本新建shell,而只是将脚本包含的命令在当前shell执行。
不过,要注意一个例外,当exec命令来对文件描述符操作的时候,就不会替换shell,而且操作完成后,还会继续执行接下来的命令。
exec 3<&0:这个命令就是将操作符3也指向标准输入。

exec命令 作用
exec ls 在shell中执行ls,ls结束后不返回原来的shell中了
exec <file 将file中的内容作为exec的标准输入
exec >file 将file中的内容作为标准写出
exec 3<file 将file读入到fd3中
sort <&3 fd3中读入的内容被分类
exec 4>file 将写入fd4中的内容写入file中
ls >&4 ls将不会有显示,直接写入fd4中了,即上面的file中
exec 5<&4 创建fd4的拷贝fd5
exec 3<&- 关闭fd3

另外,这个命令还可以作为find命令的一个选项,如下所示:
(1)在当前目录下(包含子目录),查找所有txt文件并找出含有字符串"bin"的行
find ./ -name “.txt" -exec grep “bin” {} ;
(2)在当前目录下(包含子目录),删除所有txt文件
find ./ -name "
.txt” -exec rm {} ;

linux中exec的用法相关推荐

  1. linux中EOF的用法梳理

    2019独角兽企业重金招聘Python工程师标准>>> linux中EOF的用法梳理 在linux运维工作中,我们会碰到这样一个场景: 执行脚本的时候,需要往一个文件里自动输入N行内 ...

  2. linux中make的用法

    一.linux中make的用法   目的:        基本掌握了make 的用法,能在Linux系统上编程. 环境:        Linux系统 准备:        准备三个文件:file1. ...

  3. linux bin fuser,Linux中fuser命令用法详解

    描述: fuser可以显示出当前哪个程序在使用磁盘上的某个文件.挂载点.甚至网络端口,并给出程序进程的详细信息. fuser显示使用指定文件或者文件系统的进程ID. 默认情况下每个文件名后面跟一个字母 ...

  4. linux ksh 用户名,实例讲解Linux中ksh的用法

    实例讲解Linux中ksh的用法 发布时间:2008-02-18 20:46:01来源:红联作者:Modegle 熟悉Linux的朋友肯定都知道bash,它是Linux默认的命令行解释程序,熟悉Sol ...

  5. Linux之make的用法讲解,linux中make的用法

    1.linux中make的用法 目的: 基本掌握了make 的用法,能在Linux系统上编程. 环境: Linux系统 准备: 准备三个文件:file1.c, file2.c, file2.h fil ...

  6. linux中find常见用法

    find命令用于查找指定目录下的文件,同时也可以调用其它命令执行相应的操作** 一.命令格式 find pathname -options [-print -exec -ok -] 二.linux中f ...

  7. Linux中find常见用法示例

    find命令的参数: pathname: find命令所查找的目录路径.例如用.来表示当前目录,用/来表示系统根目录. -print: find命令将匹配的文件输出到标准输出. -exec: find ...

  8. linux中ftp的用法,linux中的ftp命令用法(7页)-原创力文档

    第 第 PAGE 1 页 共 NUMPAGES 1 页 linux中的ftp命令用法 Linux系统中的ftp命令功能强大,那么它的具体用法是怎样呢?下面由小编为大家整理了linux中的ftp命令用法 ...

  9. linux中test的用法,如何在Linux中使用test命令

    Linux系统中有时需要检测某个条件是否成立,那么就要用到test命令了,Linux下test的用法有很多,下面就随学习啦小编一起来学习下Linux系统中如何使用test命令吧. 1.判断一个命令的结 ...

  10. chmod命令用法(linux中chmod命令用法)

    linuxsort命令有哪些用法? txt apple banana orange pear 2 sort的-u选项 它的作用很简单,就是在输出行中去除重复行. [rocrocket@rocrocke ...

最新文章

  1. canal下载 linux_canal实时同步mysql数据到redis或ElasticSearch
  2. 美国康普SYSTIMAX iPatch智能配线系统介绍
  3. 最全的ASP.NET开源CMS汇总
  4. python调用数据库判断_python 访问数据库 笔记
  5. 概率统计笔记:分布的核
  6. Hibernate查询
  7. caffe-SSD源码解析——生成数据列表及数据集
  8. vs201X的TFS(Team Foundation Server) 设置为:不自动签出
  9. 3DMAX 卸载工具,完美彻底卸载清除干净3dmax各种残留注册表和文件
  10. 分盘后磁盘空间不够,用分区助手增加某个磁盘空间
  11. BREW:3G移动增值服务的黎明(转)
  12. 微信小程序下拉刷新组件加载图片(三个小点)不显示的问题
  13. CMD文件的编写说明,比较详细的 1·什么是CMD文件,它有什么作用。
  14. 四级单词pdf_英语单词里的字母到底有没有含义?
  15. 直播平台软件开发都使用了什么协议呢?
  16. 微信小程序元素节点滚到某位置后固定
  17. 高能同步辐射光源基建攻克首个难关
  18. 学会观察,可以帮我们避免很多麻烦
  19. 测试下4444444
  20. PCIe设备驱动demo

热门文章

  1. ActiveSync 与 Pocket PC 2003 仿真器 建立同步
  2. 伤心的优酷土豆,抗争逆不过命运
  3. RabbitMQ极速入门
  4. java创建临时文件
  5. 1m照片的宽和高是多少_1M照片是多大
  6. CA认证完整实现步骤
  7. LTP(Linux Test Project)学习(五)——LTP代码学习
  8. 斯坦福图机器学习CS224W笔记自用:How Expressive are Graph Neural Networks?
  9. 2021年C/C++Linux服务器开发/后台架构师知识体系整理(持续更新中)
  10. linux mv中途进程断掉,shell入门