2017-09-27 1 views
0

J'écris un script shell. Je veux exécuter 2 commandes. La première commande est:comment exécuter 2 commandes en utilisant un script shell

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

Une fois que je l'ai lancé, il écoute un port (9090).

Bien qu'il écoute ce port que je veux exécuter une autre commande (une demande boucle)

Voici comment mon code ressemble maintenant

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=") 

Depuis la première commande encore en cours d'exécution (il écoute le port) Je ne peux pas aller à la commande suivante. Y at-il un moyen de le faire de manière asynchrone ou d'une autre manière de le faire?

+1

d'un '' et à la première commande pour l'exécuter en arrière-plan. Utilisez 'pid = $!' En tant que commande suivante pour collecter le PID du processus engendré. Utilisez 'kill '$ pid" 'pour tuer le processus engendré lorsque vous n'en avez plus besoin. – Alfe

Répondre