I am trying to make an alias outside my container that will call a command inside the container:
CONTAINER="my-container-name"
container_echo() {
docker exec "$CONTAINER" bash -c "echo $@"
}
I see this output:
$ container_echo "this is a test" second third
this is a test
So this doesn't quote my arguments correctly, it only passes the first argument. I've also tried docker exec "$CONTAINER" sh -c "cp \"$@\""
but I get a Syntax error: Unterminated quoted string
error.
The best way to do this would be simply:
docker exec "$CONTAINER" echo "$@"
If you really wanted to do it via bash -c
, you should shell escape each word and concatenate them into one string:
docker exec "$CONTAINER" bash -c "echo ${*@Q}"