-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-function
More file actions
40 lines (39 loc) · 1.09 KB
/
docker-function
File metadata and controls
40 lines (39 loc) · 1.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
function docker-enter
{
if [ -z "$1" ]; then
RESULT_CONTAINER=$(docker ps | grep -v CONTAINER | awk '{print $1,$2}')
else
RESULT_CONTAINER=$(docker ps | grep -v CONTAINER | awk '{print $1,$2}' | grep $1)
fi
if [[ ! $RESULT_CONTAINER ]]; then
echo "Image not found"
return 1
fi
CONTAINER_NB_LINES=$(echo "$RESULT_CONTAINER" | wc -l)
if [ $CONTAINER_NB_LINES -eq 1 ]; then
CONTAINER_ID=$(echo $RESULT_CONTAINER | awk '{print $1}')
docker exec -it $CONTAINER_ID bash
else
declare -A OPTIONS
CPT=0
while read -r LINE; do
CPT=$(($CPT+1))
OPTIONS[$CPT]="$LINE"
IMAGE_NAME=$(echo $LINE | awk '{print $2}')
echo "$CPT => $IMAGE_NAME"
done <<< "$RESULT_CONTAINER"
echo "Make your choice [1-$CPT] :"
read USER_CHOICE
INTEGER_TEST='^[0-9]+$'
if [[ $USER_CHOICE =~ $INTEGER_TEST ]]; then
if [ ! $USER_CHOICE -gt $CPT -a ! $USER_CHOICE -lt 1 ]; then
CONTAINER_ID=$(echo "${OPTIONS[$USER_CHOICE]}" | awk '{print $1}')
docker exec -it $CONTAINER_ID bash
else
echo "Not valid choice => $USER_CHOICE"
fi
else
echo "Not valid choice => $USER_CHOICE"
fi
fi
}