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. 使用Word 进行UTF8 以及字符串编码的转换操作

    1. 使用Word文档能够实现 字符串和utf8编码的转换. 快捷键是 ALT+X 在知乎的一个里面看到一个说法: ㍾ ㍽ ㍼ ㍻ - 这四个在Unicode表里是倒序排列的,而且只预留了这四个年号, ...

  2. 深度学习:卷积神经网络(convolution neural network)

    (一)卷积神经网络 卷积神经网络最早是由Lecun在1998年提出的. 卷积神经网络通畅使用的三个基本概念为: 1.局部视觉域: 2.权值共享: 3.池化操作. 在卷积神经网络中,局部接受域表明输入图 ...

  3. [MYSQL] 如何彻底卸载MYSQL5.x

    找了这么久,只有这个可以完全卸载~~~,转自http://www.doc88.com/p-9435498025667.html

  4. 动态生成lookup字段

    var  i: Integer;begin  //ADOQuery已打开   //在数据集打开的情况下新增加一个字段  with Self.ADOQuery1 do  begin    TDataSe ...

  5. C# 键盘记录器

    设计背景 Win系统带有API可以获取键入值,本小程序主要应用了一个网上广为流传的类,可以说一个测试DEMO.有俗称为键盘钩子 设计思路 使用Win API获取建入值 相关技术 Win API 功能 ...

  6. 第217天:深入理解Angular双向数据绑定的原理

    一.理解angular双向数据绑定 双向绑定是新的前端框架中频繁出现的一个新词汇,也是mvvm的核心原理.angularjs五条核心信念中的数据驱动,便是由双向绑定进行完成. 那么什么是双向绑定,下面 ...

  7. P2617 Dynamic Rankings

    题目描述 给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的数是多少(1≤k≤ ...

  8. word2010激活工具使用方法

    1.关闭杀毒,关闭正打开着的word文档 2.执行Activator_v1.2.exe-->Activation Office 2010VL -->按1 -->完毕. 3.打开wor ...

  9. java中poi进行execl导出

    首先贴出最终导出的execl截图吧: 前台界面如下: 点击导出时,为其按钮的onclick事件添加exportDate()函数: function exportDate(){ var begin_Da ...

  10. Permutations II - LeetCode

    目录 题目链接 注意点 解法 小结 题目链接 Permutations II - LeetCode 注意点 不确定有几种排列 解法 解法一:因为有重复的数字所以排列的个数不确定几个,一直生成新的排列直 ...