你的位置:首页 > 网海拾贝

Bash内置命令exec和重定向

2011-05-09 浏览:(1214) 网海拾贝 评论(0)

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

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

$exec ls

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

$exec <file_name

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

$exec >file_name

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

$exec 3<datafile

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<filex //重新打开文件filex并分配文件描述符3,作为输入

$cat <& 3 //重定向cat命令的输入到文件描述符3,即文件filex

$exec 3<&- //关闭filex

  • 发表评论
  • 查看评论
【暂无评论!】

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。