exec命令可以用来替代当前shell;换句话说,并没有启动子shell。使用这一命令时任何环境都将被清除,并重新启动一个shell。

它的一半形式为:

exec command

其中,command通常是一个shell脚本。

描述exec命令最贴切的说法是:它践踏了你当前的shell。

当这个脚本结束了,相应的会话可能也就结束了。

但是,exec在对文件描述符进行操作的时候(也只有在这个时候),它不会覆盖你当前的shell。

    下面举几个例子:

1、exec 3</tmp/1.txt     //以“只读方式”打开/tmp/1.txt,文件描述符对应为3

2、exec 3>/tmp/1.txt     //以“只写方式”打开/tmp/1.txt,文件描述符对应为3

3、exec 3<>/tmp/1.txt    //以“读写方式”打开/tmp/1.txt,文件描述符对应为3

4、exec 3<&-             //关闭文件描述符3

附录:常见的文件重定向命令

command > filename                      把标准输出重定向到一个新文件中

command >> filename                    把标准输出重定向到一个文件中(追加)
    command 1 > fielname                       把标准输出重定向到一个文件中
    command > filename 2>&1                 把标准输出和标准错误一起重定向到一个文件中
    command 2 > filename                       把标准错误重定向到一个文件中
    command 2 >> filename                     把标准输出重定向到一个文件中(追加)
    command >> filename 2>&1              把标准输出和标准错误一起重定向到一个文件中(追加)
    command < filename >filename2        把command命令以filename文件作为标准输入,以filename2文件作为标准输出
    command < filename                          把command命令以filename文件作为标准输入
    command << delimiter                      把从标准输入中读入,直至遇到delimiter分界符
    command <&m                                 把文件描述符m作为标准输入
    command >&m                                 把标准输出重定向到文件描述符m中
    command &m<&-                             关闭文件描述符m

exec操作文件描述符的更多相关文章

  1. linux exec操作文件描述符

    linux每一个打开文件都会关联一个文件描述符,需要的时候我们可以使用exec命令指定一个大于3的数字作为文件 linux默认文件描述符 每打开一个shell就会打开默认的三个文件描述符描0,1,2, ...

  2. linux exec和文件描述符妙用技巧(转)

    最近在看<精通unix shell脚本编程>时,看到exec<$1 exec 1>$OUTFILE,一下看的我就蒙了.网上看了大半天,终于搞定,记录如下.对于 Linux 而言 ...

  3. Linux exec与文件描述符

    看到好几篇文章讲述exec都是一知半解,所以我尽量说的清楚明白一些.本文首先讲述Linux文件描述符,然后是exec,最后举例说明exec I/O重定向及其用法. 概念:exec命令用于调用并执行指令 ...

  4. exec 与文件描述符

    参考http://blog.csdn.net/baoendemao/article/details/51638746 1:用法       exec 3<2.txt  以只读方式打开2.txt, ...

  5. linux shell exec 关联文件描述符

    在写shell脚本时,如果多个命令的输入或输出都是同一个文件,而这个文件的路径和名字都很长,则需要书写很多次同样的路径会很浪费时间,我们可以使用exec命令来关联一个自定义的文件描述符到一个特定的文件 ...

  6. 18 shell 重定向以及文件描述符

    1.对重定向的理解 2.硬件设备和文件描述符 文件描述符到底是什么 3.Linux Shell 输出重定向 4.Linux Shell 输入重定向 5.结合Linux文件描述符谈重定向 6.Shell ...

  7. linux中文件描述符

    :: # cat ping.txt PING baidu.com (() bytes of data. bytes from ttl= time=32.1 ms bytes from ttl= tim ...

  8. Linux下的文件操作——基于文件描述符的文件操作(2)

    文件描述符的复制 MMAP文件映射 ftruncate修改文件大小 文件描述符的复制 ​ 系统调用函数dup和dup2可以实现文件描述符的复制,经常用来重定向进程的stdin(0), stdout(1 ...

  9. linux系统编程之文件与IO(八):文件描述符相关操作-dup,dup2,fcntl

    本节目标: 1,文件共享 打开文件内核数据结构 一个进程两次打开同一个文件 两个进程打开同一个文件 2,复制文件描述符(dup.dup2.fcntl) 一,文件共享 1,一个进程打开两个文件内核数据结 ...

随机推荐

  1. set_magic_quotes_runtime

    在php的配置文件中,有个布尔值的设置,就是magic_quotes_runtime,当它打开时,php的大部分函数自动的给从外部引入的(包括数据库或者文件)数据中的溢出字符加上反斜线. 当然如果重复 ...

  2. web.config文件详解[转]

    一).Web.Config是以XML文件规范存储,配置文件分为以下格式1.配置节处理程序声明特点: 位于配置文件的顶部,包含在<configSections>标志中.2.特定应用程序配置特 ...

  3. IE下Userdata本地化存储

    这两天看了下Discuz x2发帖的实时保存机制,涉及到本地化存储,所以上网查了下,Firefox等支持HTML5的浏览器使用window.localStorage或window.sessionSto ...

  4. MyFlash闪回恢复数据

    使用限制: .binlog格式必须为row,且binlog_row_image=full. .仅支持5.6与5.. .只能回滚DML(增.删.改). .mysqlbinlog版本请保持一致. 1.安装 ...

  5. BZOJ3309 DZY Loves Math(莫比乌斯反演+线性筛)

    一通正常的莫比乌斯反演后,我们只需要求出g(n)=Σf(d)*μ(n/d)的前缀和就好了. 考虑怎么求g(n).当然是打表啊.设n=∏piai,n/d=∏pibi .显然若存在bi>1则这个d没 ...

  6. Java之Java程序与虚拟机

    Java为什么要在虚拟机中运行 简单的来说,Java作为一门高级程序语言,语法复杂,抽象度高,不能直接翻译为机器码在机器上运行,所以设计者就设计了虚拟机,通过编译器将Java程序转换成虚拟机所能识别的 ...

  7. JS的强制类型转换

    将值从一种类型转换为另一种类型通常称为类型转换,这是显式的情况,隐式的情况称为强制类型转换. JavaScript中的强制类型转换总是返回标量基本类型值,如字符串.数字和布尔值,不会返回对象和函数. ...

  8. bzoj 4519: [Cqoi2016]不同的最小割 最小割树

    怎么求一张无向图中任意两点之间的最小割? http://fanhq666.blog.163.com/blog/static/8194342620113495335724/ 一张无向图不同的最小割最多有 ...

  9. 三、java面向对象编程_1

    目录 一.对象和类的概念 二.对象和引用 1.对象 2.成员变量 3.引用 三.java类的定义 四.构造函数(构造方法) 五.内存分析 一.对象和类的概念 1.对象 对象用计算机语言对应问题域中事物 ...

  10. 微信授权,openid 分享

    https://packagist.org/packages/fcode/wxshare