gpt4 book ai didi

linux - 如何同时执行两个 shell 函数?

转载 作者:太空宇宙 更新时间:2023-11-04 09:34:10 24 4
gpt4 key购买 nike

我编写了一个 shell 脚本,其中包含输出一些 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。对不起,这不是最容易解释的事情,但我希望你能理解。谢谢。

最佳答案

对显示器上打印位置的高级控制不是您可以轻松完成的事情。您需要指定绘制位置等。

管道将输出从一个命令发送到另一个命令(因此 function_two 在其标准输入上获得来自 function_one 的输出,这根本不是您想要的)。

如果你只是不想function_two等待function_one完成放置function_one在背景中 & .

function_one &
function_two

但是如果 function_one未完成打印这不会按照您想要的方式工作。

关于linux - 如何同时执行两个 shell 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28485727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com