小编yua*_*eng的帖子

bash `read -t` 在管道上不起作用

证明这一点的一个非常简单的方法是运行

mkfifo /tmp/a
read -t 1 a < /tmp/a
Run Code Online (Sandbox Code Playgroud)

阅读永远不会返回。

Bash 手册说:此选项仅在 read 从终端、管道或其他特殊文件读取输入时有效;从常规文件读取时无效

但是 /tmp/a 是一个管道, ls 的输出是

ls -l /tmp/a
prw-r--r-- 1 root root 0 Feb  4 22:18 /tmp/a
Run Code Online (Sandbox Code Playgroud)

bash 版本是:

GNU bash,版本 4.3.46(1)-release (x86_64-pc-linux-gnu) 版权所有 (C) 2013 Free Software Foundation, Inc.

操作系统是:

Ubuntu 16.04.1 LTS
Run Code Online (Sandbox Code Playgroud)

linux bash shell

5
推荐指数
1
解决办法
413
查看次数

标签 统计

bash ×1

linux ×1

shell ×1