Bash - Проверка, если канал без имени пуст

Моя проблема, я хочу сценарий, который читает содержание из канала, проверки, если это пусто и произвело его в противном случае, как замечено здесь:

#!/bin/bash
var=$(cat -)
if [ -n "$var" ]
then
    echo "$var"
else
    echo "Pipe was empty"
fi

Проблема, чтения кошки от stdin, если канал пуст. Там какой-либо путь состоит в том, чтобы препятствовать тому, чтобы кошка делала это? Или действительно ли кошка является неправильным инструментом для использования здесь?

4
задан 27.04.2011, 04:46

1 ответ

Использовать read -t 0 -N 0 обнаружить, если данные доступны на stdin. Использовать test -t 0 или tty пытаться обнаружить, если канал подключен к stdin.

5
ответ дан 07.12.2019, 20:08

Теги

Похожие вопросы