There seems to be some syntax issues and also I would suggest to use `bash` instead if using `sh` shell. Try the below code and see if this works properly. (EDIT - Put shebang on first line to accept as answer) sh label: 'Stop and Remove Old Docker Container', script: '''#!/usr/bin/env bash docker ps -a echo $APP_CONTAINER_NAME docker ps -a | grep $APP_CONTAINER_NAME || true status=("${PIPESTATUS[@]}") DOCKERCODE=${status[0]} GREPCODE=${status[1]} echo "Docker Command Code: $DOCKERCODE" echo "Grep Command Code: $GREPCODE" if [ $DOCKERCODE -eq 0 ]; then docker stop $APP_CONTAINER_NAME docker rm $APP_CONTAINER_NAME else echo "WARNING: Docker command was empty or had an error" fi ''' In the above code, I have made changes in the way you were trying to get output of command `docker ps -a | grep $APP_CONTAINER_NAME || true` using `PIPESTATUS` variable. Since `PIPESTATUS` is a special variable, it's value gets updated after every command, so you were not getting any value of `${PIPESTATUS[1]}` The other change I have made is fixing the syntax issue in the line `if [ $DOCKERCODE -eq 0 ] then;` to `if [ $DOCKERCODE -eq 0 ]; then` You can test out the code further.