我是Shell脚本的新手,最近从Basic开始。我已经编写了代码来检查是否有cassandra节点,如果没有,它会给出是或否,然后执行一些命令。我的问题是我已经启动了node1,并且正在检查节点是否已经存在,然后获取该容器的ID并启动该容器。但是,当我运行它时,它获取了容器的ID,花费了很长时间,并且从未启动。如果我在没有外壳命令的情况下启动容器,它将启动。但是我想让他们沉迷于外壳。
这是我的代码:
if sudo docker ps -a | grep -q 'node1';then
sudo docker inspect --format="{{.Id}}" node1
read num
sudo docker start num
elif sudo docker ps -a | grep -q 'node2';then
sudo docker inspect --formar="{{.Id}}" node2
read Idnode2
sudo docker start Idnode2
else
sudo docker run --name node1 -d -e CASSANDRA_BROADCAST_ADDRESS=192.168.1.xx -p 7000:7000 cassandra:2
fi
输出:
./tet.sh
f1713abbee52ca465962ec53e97dde62058d37859005f77786db3e3eebe0086c
blinks forever after this
我不明白为什么它会闪烁而不执行。
答案 0 :(得分:1)
我通过以下命令自己解决了
if sudo docker ps -a | grep -q 'node1';then
sudo docker inspect --format="{{.Id}}" node1
sudo docker start node1
elif sudo docker ps -a | grep -q 'node2';then
sudo docker inspect --formar="{{.Id}}" node2
read Idnode2
sudo docker start Idnode2
else
sudo docker run --name node1 -d -e CASSANDRA_BROADCAST_ADDRESS=192.168.1.xx -p 7000:7000 cassandra:2
fi