我必须创建一个shell脚本来从shell命令开始弹性搜索,并且在成功启动弹性搜索后,我必须执行某些操作。 在我的情况下,弹性搜索开始但在此之后没有任何事情发生,甚至echo命令都不起作用。
以下是代码示例:
elasticsearch-1.7.2/bin/elasticsearch
res=$( curl -w %{http_code} -s --output /dev/null http://localhost:9200)
if [ $res -eq 200 ]
then
echo "Elastic search running successfully"
Perform operation
fi
谢谢,
答案 0 :(得分:1)
shell脚本在执行时会执行1行,并且在当前行完成之前不会移动到下一行(命令)。
您可以使用&
字符在后台运行命令,然后可以按顺序执行其余命令。
像
这样的东西#!/bin/bash
elasticsearch-1.7.2/bin/elasticsearch &
/bin/sleep 30 # change to num secs needed for ES to start correctly
res=$( curl -w %{http_code} -s --output /dev/null http://localhost:9200)
if [ $res -eq 200 ]
then
echo "Elastic search running successfully"
Perform operation
fi
可能有帮助。