другое решение: можно записать интерактивный сценарий, который автоматически попросит выбор. вот код для интерактивного сценария:
#!/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`
Но перед использованием сценария проверяют Ваш, "находят команду", дает ли это результат или нет. Если это показывает, что некоторый результат затем только использует сценарий
Программа на левой стороне канала не получает EOF (который не является сигналом), когда правая сторона конвейера заканчивается. Это получает SIGPIPE, который говорит этому завершаться. Проблема состоит в том, что Вы ничего не читаете из конвейера или считываете любые данные с конвейера. Вы, вероятно, хотите a while read
цикл, который будет читать из stdin, пока это живо:
while read -r value; do
if [ "$value" = "1+1" ]; then
echo "2";
else
echo "0";
fi
done