У меня есть пользовательский скрипт bash, который каким-то образом создает каталог и выводит его путь. Он может работать разными способами, например, он может клонировать git-репозиторий, выполнить некоторые настройки и затем вывести путь. Что-то вроде этого:
git clone ...repo --quiet && echo "...path"
Я запускаю его, используя подстановку команд, оборачивая $(...)
и используя полученный путь. Что-то вроде этого:
path=$(...)
Сама команда предоставляется пользователем, так что это может быть что угодно, я не могу ожидать, что это всегда будет git clone.
Это работает хорошо, но если команды перед финальным echo
выводом что-то выводят, это испортит результат. Я мог перенаправить stdout в stderr для всех предыдущих команд и использовать только stdout на последнем шаге, но я чувствую, что это хак.
Есть ли способ оставить stdout и stderr для stdout и stderr вызывающего абонента, но иметь отдельный поток для результата?