user388398 Asked: 2020-01-01 03:49:00 +0800 CST2020-01-01 03:49:00 +0800 CST 2020-01-01 03:49:00 +0800 CST 如何在阅读时调用之前找出是否有要阅读的内容? 772 我对脚本非常陌生,我无法弄清楚这一点。我想知道是否有什么要读的,如果没有的话 bash read 1 个回答 Voted Best Answer Stéphane Chazelas 2020-01-01T03:56:39+08:002020-01-01T03:56:39+08:00 bash具体来说,如果有read -t0要读取的内容或在标准输入上或已到达输入末尾,则返回 true,否则返回 false。 if read -t0; then echo "there's something to be read on stdin, or end-of-file is reached" else echo "there's nothing that may be read from stdin at the moment" fi 请注意,即使要读取的内容不是整行甚至不是完整字符,它也会返回 true,因此后续read可能仍会挂起等待未转义的行分隔符。 如果 stdin 处于非阻塞模式或 stdin 不可读,read -t0将始终返回true.
bash
具体来说,如果有read -t0
要读取的内容或在标准输入上或已到达输入末尾,则返回 true,否则返回 false。请注意,即使要读取的内容不是整行甚至不是完整字符,它也会返回 true,因此后续
read
可能仍会挂起等待未转义的行分隔符。如果 stdin 处于非阻塞模式或 stdin 不可读,
read -t0
将始终返回true
.