小编Syl*_*oux的帖子

如何从shell检查stdin是否为/ dev / null?

在 Linux 上,有没有办法让 shell 脚本检查其标准输入是否从空设备 (1, 3) *重定向,理想情况下不读取任何内容?

预期的行为是:

./checkstdinnull
-> no
./checkstdinnull < /dev/null
-> yes
echo -n | ./checkstdinnull
-> no

EDIT

mknod secretunknownname c 1 3
exec 6<secretunknownname
rm secretunknownname
./checkstdinnull <&6
-> yes
Run Code Online (Sandbox Code Playgroud)

我怀疑我“只”需要读取输入设备的主要/分钟数。但是我找不到从 shell 中做到这一点的方法。


*没有必要只是/dev/null,但任何空设备,即使手动创建mknod。

linux shell devices stdin

10
推荐指数
2
解决办法
3080
查看次数

哪个类 Unix 系统真正提供了 /dev/tcp 特殊文件?

我知道/dev/tcp/<host>/<port>是由重定向中的某些 shell 专门处理的魔术路径。但根据man bash:

如果运行 bash 的操作系统提供这些特殊文件,bash 将使用它们;否则它会在内部模拟它们 [...]

在我现在使用的 Linux 机器上,/dev/tcp特殊文件不存在,因此 Bash 将模拟它。但是,实际上是否有一种类 Unix 系统确实提供了/dev/tcp与 Bash 支持的具有相同语义的特殊文件?

devices tcp character-special-files

9
推荐指数
1
解决办法
437
查看次数

标签 统计

devices ×2

character-special-files ×1

linux ×1

shell ×1

stdin ×1

tcp ×1