Я новичок в сценариях Bash. Я добавил if .. else
в сценарий Bash. Мой скрипт предназначен для создания контейнеров Docker, если контейнер не существует, и создания нового контейнера, если он существует. Но сценарий никогда не запускает блок else
; он всегда запускает блок if
.Bash script if .. else .. не работает
Мой сценарий:
#!/bin/bash
tomcat=$(ssh [email protected] sudo docker ps -a | grep -w 'my-tomcat')
echo "$?"
if [ "$BRANCH" = "tomcat" ] && [ "$?" -eq 0 ]; then
ssh [email protected] /bin/sh <<-EOF
{ cd tomcat/ && sudo docker stop my-tomcat && sudo docker rm my-tomcat; } \
&& { sudo docker build -t tomcat .; } \
&& { sudo docker run -h tomcat --name my-tomcat -itd -p 2013:8080 tomcat; } \
&& { sudo docker start my-tomcat; }
EOF
else
ssh [email protected] /bin/sh <<-EOF
{ cd tomcat/ && sudo docker build -t tomcat .; } \
&& { sudo docker run -h tomcat --name my-tomcat -itd -p 2013:8080 tomcat; } \
&& { sudo docker start my-tomcat; }
EOF
fi
Является ли «$ ФИЛИАЛ» равно «» кот все время? – Krishna
Скопируйте свой скрипт в http://www.shellcheck.net/, и он бросил уродливую ошибку 'При использовании << -, вы можете только отступать с вкладками. Исправление этой ошибки может помочь вам решить проблему. – Inian
Является ли« $ ФИЛИАЛ «все время равно« кошка »и в чем причина того, что он принимает переменную кошку? – Krishna