Есть ли способ для функции «рыба» прочитать необязательный ввод с канала? - PullRequest
0 голосов
/ 27 сентября 2019

Есть ли способ прочитать данные из канала и продолжить, если их нет?Я попытался сделать это с помощью cat так:

set -l pipe_input (cat -)

Однако это приводит к остановке функции и ожиданию ввода канала, когда его нет.Я бы хотел, чтобы fish выполнил оставшуюся часть функции, даже если нет входного канала.

1 Ответ

0 голосов
/ 27 сентября 2019

Вы можете проверить, подключен ли stdin к трубе:

if isatty stdin
    set -l pipe_input ""     # not a pipe or redirection
else
    set -l pipe_input (cat -)
end

Ref: https://fishshell.com/docs/current/commands.html#isatty

...