我是Shell Script Linux的新手 我正在使用Android进行自动化测试,所以我想在下面运行一些shell脚本:
不幸的是,当我运行cmd1.sh时,我必须等待3分钟才能运行cmd2.sh
这意味着我无法录制视频:伤心:
这是我的运行命令内容:
run.sh 文件内容:
./ cmd1.sh $
./cmd2.sh
cmd1.sh 文件内容:
adb shell screenrecord /sdcard/file.mp4
cmd2.sh 文件内容:
calabash-android运行app.apk
最后,我打开终端然后运行命令:
./ run.sh
当然,视频无法保存,因为在cmd1.sh完成后,cmd2.sh运行!!!
在这一点上有人可以帮助我吗?
非常感谢 !
@Jrican 已更新
这是我可以播放视频录制的手动步骤
1.打开端子A
2.运行命令1(开始记录屏幕脚本)
3.打开另一个终端B然后运行命令2
4.命令2完成后,返回终端A,然后按Ctrl C.
5.确认/sdcard/file.mp4中可以正常播放的视频
我正在使用MAC OSX Yosemite 10.10.5
答案 0 :(得分:3)
简易解决方案: run.sh文件内容:
./cmd1.sh & # run this command in the background
./cmd2.sh # run this command to completion
kill -SIGINT %1 # send the interrupt signal to the first command (ctrl+c)
稍微更正确的解决方案: run.sh文件内容:
./cmd1.sh & # run this command in the background
recPID=$! # save the PID for this process for later
./cmd2.sh # run this command to completion
kill -SIGINT $recPID # send the interrupt signal to the first command (ctrl+c)
答案 1 :(得分:1)
同时运行两个命令,然后在第二个命令完成后终止第一个命令的PID:
#!/bin/sh
# Run first command in background:
./cmd1.sh & PID="$!"
# Run second command:
./cmd2.sh
# Kill the first command:
kill "$PID"