如何使用shell脚本

时间:2017-09-27 09:07:30

标签: linux multithreading bash shell sh

我正在编写一个shell脚本。我想运行2个命令。第一个命令是:

/zap.sh -daemon -config api.disablekey=true -config view.mode=attack

一旦我运行它,它将监听一个端口(9090)。

当它侦听该端口时,我想运行另一个命令(卷曲请求)

这就是我的代码现在的样子

echo "start daemon";
    ~/Desktop/research/ZAP/zap.sh -daemon -config api.disablekey=true -config view.mode=attack 
    echo "deamon is running";
    a=$( curl "http://localhost:8500/JSON/spider/action/scan/?zapapiformat=JSON&url=http://localhost:8080/Danial/login&contextName=" )

由于第一个命令仍在运行(它监听端口),我无法转到下一个命令。有没有办法以异步方式或其他方式执行此操作?

2 个答案:

答案 0 :(得分:3)

您可以在后台运行第一个命令,这将允许您在第一个命令运行时执行其他命令。

详细了解:https://www.maketecheasier.com/run-bash-commands-background-linux/

它基本上是这样的:

#!/bin/bash
command1 &
command2

答案 1 :(得分:0)

虽然你可能不需要任何精心设计的东西,但你可能会偷看运行“协同处理”。

http://wiki.bash-hackers.org/syntax/keywords/coproc