实际上我主要使用 Ruby,但现在我创建了一个 bash 脚本文件。通过这个脚本文件,我在屏幕上显示消息。这是我的场景。
我用过aosd_cat模块用于在屏幕上显示消息,我成功做到了。为此,我使用了他们的文档。
这是我的message.sh
脚本文件:
#!/bin/bash
function message_1(){
if [ condition ]
echo 'message -1' | DISPLAY=:0 aosd_cat -u 10000 -e 2 -t 2 -R 'Green' -n 'Arial Bold 20' -p 0 -x 10 -y 60
else
echo 'message -4' | DISPLAY=:0 aosd_cat -u 10000 -e 2 -t 2 -R 'Green' -n 'Arial Bold 20' -p 0 -x 10 -y 60
fi
}
function message_2(){
echo 'message -2' | DISPLAY=:0 aosd_cat -u 10000 -e 2 -t 2 -R 'Green' -n 'Arial Bold 20' -p 0 -x 10 -y 60
}
function message_3(){
echo 'message -3' | DISPLAY=:0 aosd_cat -u 10000 -e 2 -t 2 -R 'Green' -n 'Arial Bold 20' -p 0 -x 10 -y 60
}
# As I have to display messages continuously
while true
do
message_1
message_2
message_3
done
执行后,我发现消息被逐一显示(首先显示message_1,然后显示message_2,然后显示message_3)。
我必须同时显示所有消息。为了实现这一点,我认为我可以在子shell/作为子进程/在后台执行这些命令(这样就不会影响其他进程)。
在 Ruby 中我们有系统命令在子 shell 中执行给定的命令。如何在 bash 脚本文件中实现此类功能?
答案1
你可以这样做:
bash -c command
但在您的情况下,将命令发送到后台可能就足够了:
command &