@koxac

Как вывести на экран и записать в переменную?

Есть код
echo step 1 && sleep 5 && echo step 2 && sleep 5 && echo step 3 && sleep 5 && echo finish


Чтоб записать результат в переменную делаю так
res=`echo step 1 && sleep 5 && echo step 2 && sleep 5 && echo step 3 && sleep 5 && echo finish`
echo $res;


Но тогда на экран выведется только по завершению, но как сделать так чтоб выводилось в процессе работы и по завершению была переменная с результатом?
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
koxac, Лечится постановкой скобок вокруг всего

(echo step 1 && sleep 5 && echo step 2 ) | tee /tmp/a.log

res=$(cat /tmp/a.log)
echo $resstep 1 step 2
5e401c6dc9ba9785453481.png
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev Куратор тега Linux
build engineer
res=$(step 1) && echo $res && sleep 5 && res="$res $(step 2)" && echo $rest ...


Но это немного бред. Не пишите многострочник, просто напишите скрипт или функцию.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
05 апр. 2020, в 06:56
10000 руб./за проект
04 апр. 2020, в 23:07
30000 руб./за проект
04 апр. 2020, в 23:05
100000 руб./за проект