1

在 Bash 编程中,我想准确读取 10 个字节,但在遇到 '\n' 时不返回
我知道在 Bash 4.x 中,有 -N 选项可以实现此功能:

#!/bin/bash
exec 6<>/dev/tcp/localhost/6666
read -r -N 10 -u 6

但是当没有提供 -N 选项时这是如何实现的:比如 Bash 3.x 版本?
首先十分感谢!

4

2 回答 2

1

这可能会奏效:

dd ibs=10 count=1 <&6 2>/dev/null

因为head -c 10 <&6在 Solaris 上不受支持

于 2013-03-21T06:05:36.037 回答
0

以 Bash 3.2 为例:

$ echo $BASH_VERSION
3.2.25(1)-release
$ cat file
0123
4567
89ab
cdef
$ read -r -n 8 -d $'\0' var < file
$ echo "$var"
0123
456
$
于 2013-03-21T07:20:59.530 回答