Как постараться не отправлять EOF от сценария, анализирующего запросы от и отправляющего ответы на netcat

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

#!/bin/bash

echo "enter your choice : z for last argument or a number for that file"
read choice

case "$choice" in
z) eval vim \$$#;;
*)eval  vim \$$choice;;
esac

сохраните этот сценарий с любым именем, говорят, "автонаходят" и вызывают сценарий с Ваш, "находят команду", поскольку аргументом здесь является код для вызова сценария:

./autofind `your find command`

Но перед использованием сценария проверяют Ваш, "находят команду", дает ли это результат или нет. Если это показывает, что некоторый результат затем только использует сценарий

2
09.12.2013, 07:04
1 ответ

Программа на левой стороне канала не получает EOF (который не является сигналом), когда правая сторона конвейера заканчивается. Это получает SIGPIPE, который говорит этому завершаться. Проблема состоит в том, что Вы ничего не читаете из конвейера или считываете любые данные с конвейера. Вы, вероятно, хотите a while read цикл, который будет читать из stdin, пока это живо:

while read -r value; do
    if [ "$value" = "1+1" ]; then 
        echo "2";
    else
        echo "0";
    fi
done
5
27.01.2020, 21:57

Теги

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