通过使用文件描述符来打开和关闭一个文件。
用于 redirection 的这种 exec 用法在软件包的 configure 脚本中很常见 这问题搞了一下午,纠结的蛋疼,不就是文件句柄嘛,shell非要整个由无符号整数,像perl弄个可以含有字母的多好。o(︶︿︶)o 唉 还是我没理解文件描述符
exec 4<&0 0<stock.txt
read line1
read line2
exec 0<&4
echo $line1
echo $line2
--
exec 4<&0 0< stock.txt 执行了两个「动作」: 首先, 把文件描述符 0 (标准输入 stdin, 一般指键盘) 复制 (duplicate) 到描述符 4 (效果上是把 0 做了个备份), 然后, 用描述符 0 打开 stock.txt. 这个时候 stdin 就从 stock.txt 读数据了, 因此后面的 read 就是读 stock.txt.
--
exec 0<&4 把前面备份的描述符 4 复制回 0, 其实就是恢复了从键盘读数据
文件描述符--exec 和重定向 (linux)
原创
©著作权归作者所有:来自51CTO博客作者准备躺平的原创作品,请联系作者获取转载授权,否则将追究法律责任
这里4作为文件描述符,exec 4<&0 0<stock.txt 。
#!/bin/sh
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
windows使用csRsync同步文件到linuxrsync cwrsync 编码 同步 密码
-
文件描述符终极使用
0x01 文件描述符介绍Linux 系统中,把一切都看做是索引,...
文件描述符 bash 描述符 -
文件描述符
文件描述符编辑内核(kernel)利用文件描述符(file descriptor)来访问文件。
文件描述符 linux #include -
linux 文件描述符 0 1 2
在Shell脚本中经常看到数字0,1,2,到底是什么意思,这篇文章简单归纳总结。
文件描述符0 1 2 重定向 标准输出 标准输入