Bash 스크립팅을 처음 접했습니다. Bash 스크립트에 if .. else
을 추가했습니다. 내 스크립트는 컨테이너가없는 경우 Docker 컨테이너를 만들고, 존재하는 경우 새 컨테이너를 만드는 데 사용됩니다. 그러나 스크립트는 결코 else
블록을 실행하지 않습니다. 항상 if
블록을 실행합니다.Bash 스크립트가 다른 경우 작동하지 않습니다.
내 스크립트를
#!/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
Copy는 http://www.shellcheck.net/에 스크립트를 붙여 넣었으며'<<를 사용할 때 - 탭으로 들여 쓰기 만 할 수 있습니다 .' 그 오류를 수정하면 문제를 해결하는 데 도움이 될 수 있습니다 – Inian
"$ 지점 "은 항상"바람둥이 "와 같고 변수가있는 바람둥이를 타는 이유는 무엇입니까? – Krishna