Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6912042
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: LINUX

2015-06-13 21:01:15

Bash内置命令exec和重定向

[日期:2015-06-13] 来源:Linux社区  作者:pandachen [字体:  ]

Bash内置命令exec可以替换当前程序而不需要启动一个新的进程,可以改变标准输入和输出而不需要启动一个新的子进程。
如果文件用exec打开,read命令就会把文件指针每次指向下一行直到文件的末尾,如果要重新从文件开始读取,则必须把文件关闭再重新打开。

1、替换当前shell,执行某个命令,命令终止,shell也就终止了
$exec ls

2、打开文件作为当前shell的标准输入
$exec

3、打开文件作为当前shell的标准输出
$exec >file_name

4、打开文件作为输入,并分配文件描述符
$exec 3

5、打开文件作为输出,并分配文件描述符
$exec 4>datafile

6、创建文件描述符fd4的拷贝fd5
$exec 5<&4

7、关闭文件描述符
$exec 3<&- //关闭输入文件描述符
$exec 4>&- //关闭输出文件描述符

注意: <&和重定向操作符>&、&>的区别

例子:

$exec 3>filex //打开文件filex并分配文件描述符3,作为输出
$who >& 3 //who命令的输出输出到filex
$date >& 3 //date命令的输出输出到filex
$exec 3>&- //关闭filex
$exec 3 $cat <& 3 //重定向cat命令的输入到文件描述符3,即文件filex
$exec 3<&- //关闭filex

本文永久更新链接地址

阅读(719) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~