这个脚本在做什么?

syfluqs
#!/bin/bash

echo 123456789 > out.txt
exec 3<> out.txt
read -n 4 <&3
echo -n 5 >&3
exec 3>&-

在面试笔试中,在脚本末尾被问及out.txt的内容。我确实运行了脚本后记,它给了我123456789但是我不知道脚本中正在发生什么,尤其是带有exec语句的部分。我查找了联机帮助页和google搜索结果,exec3<>一点都找不到能够精通shell脚本的人可以解释这里发生了什么吗?

保罗·托梅(PauloTomé)

echo 123456789 > out.txt写入字符串123456789out.txt文件。

exec 3<>out.txt构造打开文件out.txt进行读写<>并将其附加到文件描述符#3。

read -n 4 <&3 读取4个字符。

echo -n 5 >&3 写5(用5代替5)。

exec 3>&- 关闭文件描述符#3。

导致

cat out.txt
123456789

关于execint的部分bash(1)指出:

exec [-cl] [-a name] [command [arguments]]如果command指定,它将替换外壳。[...]如果command未指定,则任何重定向都将在当前shell [...]中生效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

这个迅速的声明在做什么?

来自分类Dev

这个CVS命令在做什么?

来自分类Dev

这个install.sh在做什么?

来自分类Dev

这个Java方法在做什么?

来自分类Dev

“A 类”调用的这个参数在做什么?

来自分类Dev

Python,这个 for 循环在做什么?

来自分类Dev

浏览器下载了这个清晰的PHP脚本。到底在做什么

来自分类Dev

浏览器下载了这个清晰的PHP脚本。到底在做什么

来自分类Dev

这个shell脚本做什么?

来自分类Dev

这个程序到底在做什么?(SAS)

来自分类Dev

这个C ++强制转换代码在做什么?

来自分类Dev

这个jsonp应该很容易工作,我在做什么错?

来自分类Dev

这个perl映射调用在做什么?

来自分类Dev

这个FizzBuzz解决方案中的明星(*)在做什么?

来自分类Dev

问题:这个特定条件的while循环在做什么?

来自分类Dev

这个布尔值我在做什么错

来自分类Dev

这个perl映射调用在做什么?

来自分类Dev

这个JavaScript运算子在做什么?

来自分类Dev

这个简单的点击功能在做什么?

来自分类Dev

这个外壳在做什么,如何找到它?

来自分类Dev

Javascript:请解释这个 for 循环在做什么

来自分类Dev

我需要帮助破译这个回文函数在做什么

来自分类Dev

在这个条件下我在做什么?

来自分类Dev

这个bash脚本做什么?[尝试失败]

来自分类Dev

这个expr在shell脚本中做什么?

来自分类Dev

“ RailsFCGIHandler”在做什么?

来自分类Dev

eval在做什么?

来自分类Dev

程序在做什么

来自分类Dev

火狐在做什么?