我想执行一个脚本但是作为启动时的soons,我想让它回显PID,所以我正在做以下事情:
./dummy.SCRIPT & echo $!
但我也希望它在执行脚本时回应一些东西,所以我猜它应该看起来像:
( ./dummy.SCRIPT & echo $! ) && echo "Task Done!"
但它似乎不起作用,“任务完成!” echo在执行dummy.SCRIPT start的同时执行,我做错了什么!?
答案 0 :(得分:0)
而不是命令行执行,编写一个小脚本,为您完成。
$ cat monitordummy.sh
#!/bin/bash
./dummyscript &
pidofdummy=$!
while ps -p $pidofdummy > /dev/null
do
sleep 5 # Modify this according to your run time
echo -n "...." # This will be printed on the stdout
done
echo "Task Done for dummyscript"
运行脚本:
$ chmod u+x monitordummy.sh
$ ./monitordummy.sh
答案 1 :(得分:0)
它不漂亮,但应该按照你的描述进行:
{ ./dummy.SCRIPT & PID=$!; echo $PID; } && { wait $PID ; echo "Task Done!"; }
在第一个块中运行脚本,保存并打印其PID。如果没有问题,则在后台运行第二个块,等待子进程完成并打印您的消息。并非wait
也传播已完成流程的返回代码,因此您可以在此时报告已完成或相应失败。