Linux中exec的用法总结

先总结一个表:exec命令作用

exec ls在shell中执行ls,ls结束后不返回原来的shell中了

exec将file中的内容作为exec的标准输入

exec >file将file中的内容作为标准写出

exec 3将file读入到fd3中

sortfd3中读入的内容被分类

exec 4>file将写入fd4中的内容写入file中

ls >&4Ls将不会有显示,直接写入fd4中了,即上面的file中

exec 5创建fd4的拷贝fd5

exec 3关闭fd3

1.exec 执行程序

虽然exec和source都是在父进程中直接执行,但exec这个与source有很大的区别,source是执行shell脚本,而且执行后会返回以前的shell。而exec的执行不会返回以前的shell了,而是直接把以前登陆shell作为一个程序看待,在其上经行复制。

举例说明:

root@localhost:~/test#exec ls

exp1  exp5  linux-2.6.27.54  ngis_post.sh  test  xen-3.0.1-install

root@localhost:~/test#exec >text

root@localhost:~/test#ls

root@localhost:~/test#pwd

root@localhost:~/test#echo "hello"

root@localhost:~/test#exec>/dev/tty

root@localhost:~/test#cat text

exp1

exp5

linux-2.6.27.54

ngis_post.sh

test

text

xen-3.0.1-install

/root/test

hello

root@localhost:~/test#

Exec >text 是将当前shell的标准输出都打开到text文件中

root@localhost:~/test#cat test

ls

Pwd

root@localhost:~/test#bash

root@localhost:~/test#exec

root@localhost:~/test#ls

exp1  exp5  linux-2.6.27.54  ngis_post.sh  test  text  xen-3.0.1-install

root@localhost:~/test#pwd

/root/test

root@localhost:~/test#

root@localhost:~/test#exit       #自动执行

2.exec的重定向

先上我们进如/dev/fd/目录下看一下:

root@localhost:~/test#cd /dev/fd

root@localhost:/dev/fd#ls

0  1  2  255

默认会有这四个项:0是标准输入,默认是键盘。

1是标准输出,默认是屏幕/dev/tty

2是标准错误,默认也是屏幕

255

当我们执行exec 3>test时:

root@localhost:/dev/fd#exec 3>/root/test/test

root@localhost:/dev/fd#ls

0  1  2  255  3

root@localhost:/dev/fd#

看到了吧,多了个3,也就是又增加了一个设备,这里也可以体会下linux设备即文件的理念。这时候fd3就相当于一个管道了,重定向到fd3中的文件会被写在test中。关闭这个重定向可以用exec 3>&-。

root@localhost:/dev/fd#who >&3

root@localhost:/dev/fd#ls >&3

root@localhost:/dev/fd#exec 3>&-

root@localhost:/dev/fd#cat /root/test/te

test  text

root@localhost:/dev/fd#cat /root/test/test

root     tty1         2010-11-16 01:13

root     pts/0        2010-11-15 22:01 (192.168.0.1)

root     pts/2        2010-11-16 01:02 (192.168.0.1)

0

1

2

255

3

3.应用举例:

exec 3

while read -u 3 pkg

do

echo "$pkg"

done

Linux中exec函数用法,linux exec用法总结相关推荐

  1. 每天学一点儿shell:linux中时间函数的date的用法

    文章目录 1.linux中date函数格式 2.date日期函数的具体用法 2.1.获取相应格式的日期 2.2.获取相隔时间段的日期 2.2.1.获取今天的日期 2.2.2.获取昨天的日期 2.2.3 ...

  2. Linux中fork函数的作用及用法

    https://blog.csdn.net/weixin_40853073/article/details/81873398

  3. c++中的fork函数_linux c语言 fork() 和 exec 函数的简介和用法

    linux c语言 fork() 和 exec 函数的简介和用法 假如我们在编写1个c程序时想调用1个shell脚本或者执行1段 bash shell命令, 应该如何实现呢? 其实在<stdli ...

  4. php umount强制,linux中mount/umount命令的基本用法及开机自动挂载方法

    本文介绍了linux中mount/umount命令的基本用法及开机自动挂载,具体方法如下: mount命令格式如下: 格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有: -a ...

  5. linux mount 指定用户名,linux中mount/umount命令的基本用法及开机自动挂载方法

    本文介绍了linux中mount/umount命令的基本用法及开机自动挂载,具体方法如下: mount命令格式如下: 格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有: -a ...

  6. linux 移动剪切命令,Linux中vi的复制命令的用法详解

    在Linux系统中,使用VI编辑的时候经常用到的操作就是复制粘贴,那么下面由学习啦小编为大家整理了linux中vi的复制命令的用法详解的相关知识,希望对大家有帮助! Linux中vi的复制命令的用法详 ...

  7. linux中替换命令详解,linux中sed命令字符串替换的用法详解

    Linux系统中sed命令可以将字符串批量替换,省去了很多麻烦,下面由学习啦小编为大家整理了linux系统中sed命令字符串替换的用法详解,希望对大家有帮助! linux中sed命令字符串替换的用法详 ...

  8. linux内核sock_sendmsg,为什么linux中sendto函数中的msg.msg_iovlen=1;

    为什么linux中sendto函数中的msg.msg_iovlen=1; | 内核中定义的sys_sendto的源码吗? 这个属于sendmsg中struct msghdr的用法问题, sys_sen ...

  9. linux 内核 fget,fgets函数 linux中fgets函数怎么用

    一个函数该如何使用?我们最先要了解的就是这个函数的语法以及具体的含义是什么,所以今天我们就来看一看fgets函数在实际的运用过程当中是如何使用的,希望能给大家带来一定的帮助. fgets函数--lin ...

  10. Linux服务端开发——Linux中stat函数和stat命令使用详解

    这篇文章主要介绍了Linux中stat函数和stat命令使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 stat函数和s ...

最新文章

  1. Docker 入门系列(3)- Docker 容器(创建、启动、终止、进入、删除、导入、导出容器、容器和镜像转化)
  2. 关于JAVA并发编程你需要知道的——硬件篇
  3. 前端学习(1728):前端系列javascript之状态栏分析
  4. 【专题二】应用号(小程序)开发教程首发第二弹!(0923)
  5. BlackBerry 应用程序开发者指南 第二卷:高级--第11章 管理通知(Notification)
  6. android picasso 三级缓存,Android中图片的三级缓存浅析
  7. java hashSet
  8. android 自定义paint,Android自定义View中Paint、Rect、Canvas介绍(一)
  9. 为确保网络中不同计算机,在计算机网络中,为确保网络中不同计算机之间能正确地传送和接收数据,它们必须遵循一组共同的规则和约定。这些规则、约定或标准通常被称为____。...
  10. static、const、static const分析
  11. 神界计算机丢失msvcp120.dll,win8 msvcp120.dll丢失怎样修复?计算机中丢失msvcp120.dll处理办法...
  12. VC2013生成的程序兼容WindowsXP操作系统
  13. 查看表空间大小和使用率,增加表空间大小的四种方法
  14. 千兆路由器怎么设置网速最快_千兆路由器怎么设置才能发挥最好【图】
  15. 基于SSM实现水果蔬菜商城管理系统
  16. 同一个实验室,硕士们进了大厂拿高薪,为什么博士却要挤破头进高校?
  17. 数据分析面试:Excel必考知识点!
  18. REST模式:POST,GET,PUT,DELETE,PATCH的含义与区别
  19. sendmail服务器部署
  20. [深度学习论文笔记]医学图像分割U型网络大合集

热门文章

  1. 安装VS2008的时候Windows Mobile 5.0 SDK R2 for pocket pc错误解决方案
  2. android studio透明背景,使用Android Studio时出现黑色的PNG透明背景
  3. java中isa什么意思_aiisa是什么意思?
  4. zabbix短信告警oracle,zabbix自定义脚本实现短信报警提醒
  5. 小程序上传图片报错MiniProgramError “createUploadTask:fail url not in domain list“ 解决方案
  6. CityEngine 免费试用申请、下载与配置(2018)
  7. Android之底部菜单栏的实现
  8. 安卓支付宝抢红包脚本软件
  9. 《美丽心灵》兼谈纳什均衡理论
  10. 【转】用Android-X86和VirtualBox打造高性能Android开发环境