Allgemein
Knowledge Base
- Neue Struktur (In Arbeit)
- Computertechnisches
Community
Privat
Es geht darum ein Script bereitzustellen, dem Parameter übergeben werden können, die an Docker weitergereicht werden.
#!/bin/bash SCRIPTNAME=$(basename ${0/.sh/ }) if [[ "$#" -lt 1 ]]; then quoted_args="" else quoted_args="$(printf " %q" "${@}")" fi docker exec -it varnish sh -c $SCRIPTNAME ${quoted_args}
Das obige Script wird wie folgt aufgerufen:
./varnishlog.sh -q 'ReqURL ~ blog'
Leider geht das nicht, wie ich es mir vorstelle, es wird nicht nach "blog" gefiltert.
Logge ich mich im Varnish direkt ein per:
docker exec -it varnish sh
kann man
varnishlog -q 'ReqURL ~ blog'
aufrufen und es funktioniert wie erwartet.
docker exec -it varnish sh -c "$SCRIPTNAME ${quoted_args}"
Die Quotes beim Shell-Aufruf und schon klappt es, das soll jemand verstehen.