Привет Я пытаюсь создать программу в bash. Идея в том, что я бы открыл два терминала. Можно было бы ввести вход с трубой cat > pipe
. Другой терминал будет запускать скрипт bash с целым верным циклом и считывать входные данные из канала. Вход будет сохранен в переменной, и последующее действие будет происходить в зависимости от того, что хранится внутри. Это то, что я пробовал.Вход через трубу в отдельный терминал
Программа получает имя трубы в качестве аргумента и хранится в переменной трубе.
while true; do
input=$(cat<$pipe)
if [ "$input" == "exit" ]; then
exit 0
fi
done
Я попытался ввести строку выхода через трубу, но программа не останавливается так, как должна. Если переменная не получает никакого значения из трубы, как я могу ее исправить? Или что-то еще не так, что предотвращает выход?
спасибо совершенно забыл, когда я сочинительство мысль, я спросил в начале – Tenebris
попробуйте запустить его с '#/USR/бен/Баш -vx' (или! независимо от того, что ваша оболочка добавляет -x) как самую верхнюю строку для отладки. Может быть, добавьте вывод здесь, если он не поможет вам найти решение. –
В 'cat <$ pipe' второго терминала, что означает значение' $ pipe'? – sjsam