Bash内置命令exec和重定向
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
=-=-=-=-=
Powered by Blogilo
Bash内置命令exec和重定向的更多相关文章
- bash内置命令的特殊性,后台任务的"本质"
本文解释bash内置命令的特殊性.前台.后台任务的"本质",以及前.后台任务和bash进程.终端的关系.网上没类似的资料,所以都是自己的感悟和总结,如有错误,120分的期待盼请指正 ...
- bash内置命令mapfile:读取文件内容到数组
bash提供了两个内置命令:readarray和mapfile,它们是同义词.它们的作用是从标准输入读取一行行的数据,然后每一行都赋值给一个数组的各元素.显然,在shell编程中更常用的是从文件.从管 ...
- Linux bash内置命令集
man cd -->查询不到,所以会提示bash的内置命令 . alias bg bind break builtin caller cd command compgen complete c ...
- Bash内置命令
Bash有很多内置命令,因为这些命令是内置的,因此bash不需要在磁盘上为它们定位,执行速度更快. 1)列出所有内置命令列表$enable 2)关闭内置命令test$enable -n test 3) ...
- 哪一个 bash 内置命令能够进行数学运算?
bash shell 的内置命令 let 可以进行整型数的数学运算. #! /bin/bash--let c=a+b--
- 哪一个 bash 内置命令能够进行数学运算?
bash shell 的内置命令 let 可以进行整型数的数学运算. #! /bin/bash - - let c=a+b - -
- Linux内置命令
主要Shell内置命令 Shell有很多内置在其源代码中的命令.这些命令是内置的,所以Shell不必到磁盘上搜索它们,执行速度因此加快.不同的Shell内置命令有所不同. A.2.1 bash内置命令 ...
- Shell内置命令
主要Shell内置命令 Shell有很多内置在其源代码中的命令.这些命令是内置的,所以Shell不必到磁盘上搜索它们,执行速度因此加快.不同的Shell内置命令有所不同. A.2.1 bash内置命 ...
- Bash基础——内置命令
前言 Shell有很多内置在其源代码中的命令.由于命令是内置的,所以Shell不必到磁盘上搜索它们.内置命令执行速度更快,不同的Shell内置命令有所不同. 如何查找内置命令 之前查了好久怎么收索内置 ...
随机推荐
- ETL开发面试问题加吐槽加职业发展建议
写在前面: 作为甲方,对于乙方派来的开发人员,我是会自己面一下.总体来说遇到的水平不一,于是经过这三年多的面(cui)试(can),总结了一套自己的面试套路,中间也遇到过很多想吐槽的东西,于是大概记录 ...
- 阿里云CentOS7.2服务器的安装
第一步:下载服务器系统ISO安装文件 我使用的是阿里云的镜像:因为阿里云的服务在国内相对比较成熟 服务器镜像下载如下:http://mirrors.aliyun.com/centos/7/isos/x ...
- HTML+CSS--position大法好
其实在HTML和CSS的学习中,css的position属性应该是难点之一,难在你需要静下心来仔细搞清楚它的每一个值的意义.效果和用法.但是它的功能很强大,效果也是很令人惊艳的,因为你可以用它去实现一 ...
- SQL Server 数据库连接方法
我们用c#写ado或者是asp,都需要连接数据库来读写数据,今天我们就来总结一下数据库连接都有哪些方法. 首先我们就写最直接的方法,在事件中直接连接.(在这里就用WEB页面来展示) 首先我们建立web ...
- FTP中MLST概要解读---解决获取ftpFile为null的另外一种方式
零.引言 之前写FTP工具库,用的是ftp4j,他使用其他非常简单方便,但是在细节上提供的可选项比较少(当然也可能是我了解不够深刻) 最新的项目重写了FTP工具类,选择了apache net中的ftp ...
- 由typedef和函数指针引起的危机
由typedef和函数指针引起的危机 昨天阅读了大神强哥的代码,发现里面用到了函数指针,也用到的typedef.本来我自以为对这两个概念有一定的认识,但是突然发现这两个东西居然用到了一起!!!!(在一 ...
- trap-接收信号_采取行动
trap命令用于指定在接收到信号后将要采取的动作,常见的用途是在脚本程序被中断时完成清理工作. kill和trap等都可以看到信号编号及其关联的名称. "信号"是指那些被异步发送到 ...
- MyBatis源码解读(2)——MapperProxy
SqlSession可以说是整个MyBatis的重中之重,在SqlSession中涉及到前一篇四大对象:Executor.StatementHandler.ParameterHandler.Resul ...
- 微信小程序开发之获取openid及用户信息
1. 获取openid 1.1 获取code 调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的会话密钥(session_key).用户数据的加解 ...
- 主java程序猿知识体系结构
zuoxiaolong博客园<浅谈程序猿书箱的选择,你会如何选择自己的爱书呢>一文,链接如下:http://www.cnblogs.com/zuoxiaolong/p/life19.htm ...