exec操作文件描述符

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

posted @ 2017-03-15 14:30  純黑色  阅读(592)  评论(0编辑  收藏  举报