#!/bin/bash
echo 123456789 > out.txt
exec 3<> out.txt
read -n 4 <&3
echo -n 5 >&3
exec 3>&-
在面试笔试中被问到剧本末尾out.txt的内容。我确实运行了脚本后记,它给了我123456789
. 但是我不知道脚本中发生了什么,尤其是带有 exec 语句的部分。我查找了联机帮助页和谷歌搜索结果,exec
但找不到任何内容3<>
。精通shell脚本的人可以解释这里发生了什么吗?
#!/bin/bash
echo 123456789 > out.txt
exec 3<> out.txt
read -n 4 <&3
echo -n 5 >&3
exec 3>&-
在面试笔试中被问到剧本末尾out.txt的内容。我确实运行了脚本后记,它给了我123456789
. 但是我不知道脚本中发生了什么,尤其是带有 exec 语句的部分。我查找了联机帮助页和谷歌搜索结果,exec
但找不到任何内容3<>
。精通shell脚本的人可以解释这里发生了什么吗?
echo 123456789 > out.txt
将字符串写入文件123456789
。out.txt
该
exec 3<>out.txt
构造打开文件out.txt
进行读写<
,>
并将其附加到文件描述符#3。read -n 4 <&3
读取 4 个字符。echo -n 5 >&3
写入 5(将 5 替换为 5)。exec 3>&-
关闭文件描述符#3。导致
关于
exec
int的部分bash(1)
指出: