- 论坛徽章:
- 23
|
回复 #26 welcome008 的帖子
22楼:
bash-2.03$ ls b c >/dev/null 2>&3
因为fd3没有被指定,所以抱错。
bash-2.03$ ls b c >/dev/null 3>&1
这个是将fd3与fd1链接起来,写到fd3的将会写到fd1。
可以试下:
ls b c >/dev/null 3>&1 2>&3
24楼:
[j]<>filename
# 为了读写"filename", 把文件"filename"打开, 并且将文件描述符"j"分配给它.
# 如果文件"filename"不存在, 那么就创建它.
# 如果文件描述符"j"没指定, 那默认是fd 0, stdin.
#
# 这种应用通常是为了写到一个文件中指定的地方.
echo 1234567890 > File # 写字符串到"File".
exec 3<> File # 打开"File"并且将fd 3分配给它.
read -n 4 <&3 # 只读取4个字符.
echo -n . >&3 # 写一个小数点.
exec 3>&- # 关闭fd 3.
cat File # ==> 1234.67890 |
|