![](/img/trans.png)
[英]Sequential execution of command in shell script and delay the next statement to execute
[英]Stop command execution after a while and execute next command in a shell script
我想創建一個執行以下操作的腳本:
我的腳本是這樣的:
docker run -p 2181:2181 -p 9092:9092 --env ADVERTISED_HOST=localhost --env ADVERTISED_PORT=9092 spotify/kafka
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic my_topic
jq -rc . messages.json | bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic my_topic
但是第一個命令的執行過程永遠不會結束,它不能 go 到第二步。 我如何了解 Kafka 服務器已准備就緒,之后如何執行下一個命令?
您可以添加-d
選項來run
以運行容器而不附加到它,從而允許您的腳本立即繼續。 這引發了一個問題,即知道服務器准備好等待您的 shell 腳本發出的任何請求之前要等待多長時間。 一個粗略的解決方法是插入一個sleep
調用,以等待您認為必要的時間。
docker run -d ...
sleep 10 # Ten seconds should be plenty
bin/kafka-topics.sh ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.