Я написал сценарий оболочки с функциями, которые выводят некоторую анимацию ASCII. Я хотел бы выполнить две из этих функций одновременно, но чтобы они отображали искусство одно под другим, например:
function_one(){
clear
printf %s '
______________
||__________||
'
sleep 1
tput home
printf %s '
______________
||__________||
||
||
||
'
sleep 1
tput home
printf %s '
______________
||__________||
||
||
||
||‾‾‾‾‾‾‾‾‾‾||
‾‾‾‾‾‾‾‾‾‾‾‾‾‾
'
}
представьте, что эта функция продолжает печатать больше букв ASCII, но в том же наборе из 7 строк, которые она уже заняла, под этим я хочу запустить другую функцию:
function_two(){
sleep 10
printf %b "this is an example\r"
printf %b "this is more example\r"
printf %b "and some more\r"
}
Функция function_two приостанавливается на некоторое время, чтобы позволить функции function_one занять все необходимое пространство, но запускается до того, как функция function_one завершит свою работу, и выводит результат ниже функции function_one. Это возможно? Я пробовал передавать функции, например:
function_one | function_two
но это, кажется, выполняет только function_two. Извините, это не самая простая вещь для объяснения, но я надеюсь, что вы понимаете. Спасибо.