0

EDIT: added backslash to end of line 69 and get the following output:

sudo docker run --name=homebridge --hostname=homebridge --env=HOMEBRIDGE_CONFIG_UI_PORT=8581 --env=PATH=/opt/homebridge/bin:/var/lib/homebridge/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env=S6_OVERLAY_VERSION=3.1.1.2 --env=S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 --env=S6_KEEP_ENV=1 --env=ENABLE_AVAHI=0 --env=USER=root --env=HOMEBRIDGE_APT_PACKAGE=1 --env=UIX_CUSTOM_PLUGIN_PATH=/var/lib/homebridge/node_modules --env=HOME=/home/homebridge --env=npm_config_prefix=/opt/homebridge --env=npm_config_global_style=true --env=npm_config_audit=false --env=npm_config_fund=false --env=npm_config_update_notifier=false --env=npm_config_loglevel=error --env=HOMEBRIDGE_PKG_VERSION=1.0.33 --volume=/volume1/docker/homebridge:/homebridge:rw --volume=/homebridge --network=host --workdir=/homebridge --restart=always '--label='\''org.opencontainers.image.title=Homebridge' in 'Docker'\''' '--label='\''org.opencontainers.image.authors=oznu'\''' '--label='\''org.opencontainers.image.licenses=GPL-3.0'\''' '--label='\''org.opencontainers.image.url=https://github.com/oznu/docker-homebridge'\''' '--label='\''org.opencontainers.image.description=Official' Homebridge Docker 'Image'\''' --log-driver=db --runtime=runc --detach=true -t oznu/homebridge:ubuntu

I have a script that defines a variable that becomes equal to the following. This variable includes variables which have to be expanded to complete it.

--name=homebridge               --hostname=homebridge           --env=HOMEBRIDGE_CONFIG_UI_PORT=8581            --env=PATH=/opt/homebridge/bin:/var/lib/homebridge/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin                 --env=S6_OVERLAY_VERSION=3.1.1.2                --env=S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0                --env=S6_KEEP_ENV=1             --env=ENABLE_AVAHI=0     --env=USER=root          --env=HOMEBRIDGE_APT_PACKAGE=1          --env=UIX_CUSTOM_PLUGIN_PATH=/var/lib/homebridge/node_modules           --env=HOME=/home/homebridge             --env=npm_config_prefix=/opt/homebridge  --env=npm_config_global_style=true               --env=npm_config_audit=false            --env=npm_config_fund=false             --env=npm_config_update_notifier=false          --env=npm_config_loglevel=error          --env=HOMEBRIDGE_PKG_VERSION=1.0.33              --volume=/volume1/docker/homebridge:/homebridge:rw              --volume=/homebridge            --network=host          --workdir=/homebridge           --restart=always --label='org.opencontainers.image.title=Homebridge in Docker'            --label='org.opencontainers.image.authors=oznu'                 --label='org.opencontainers.image.licenses=GPL-3.0'             --label='org.opencontainers.image.url=https://github.com/oznu/docker-homebridge'          --label='org.opencontainers.image.description=Official Homebridge Docker Image'                 --log-driver=db                 --runtime=runc   --detach=true -t oznu/homebridge:ubuntu

I then want to execute those arguments like so:

sudo docker run "$args" or sudo docker run $args

The problem is I get

sudo docker run '
                --name=homebridge               --hostname=homebridge           --env=HOMEBRIDGE_CONFIG_UI_PORT=8581            --env=PATH=/opt/homebridge/bin:/var/lib/homebridge/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin                 --env=S6_OVERLAY_VERSION=3.1.1.2                --env=S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0                --env=S6_KEEP_ENV=1             --env=ENABLE_AVAHI=0     --env=USER=root          --env=HOMEBRIDGE_APT_PACKAGE=1          --env=UIX_CUSTOM_PLUGIN_PATH=/var/lib/homebridge/node_modules           --env=HOME=/home/homebridge             --env=npm_config_prefix=/opt/homebridge  --env=npm_config_global_style=true               --env=npm_config_audit=false            --env=npm_config_fund=false             --env=npm_config_update_notifier=false          --env=npm_config_loglevel=error          --env=HOMEBRIDGE_PKG_VERSION=1.0.33              --volume=/volume1/docker/homebridge:/homebridge:rw              --volume=/homebridge            --network=host          --workdir=/homebridge           --restart=always --label='\''org.opencontainers.image.title=Homebridge in Docker'\''              --label='\''org.opencontainers.image.authors=oznu'\''           --label='\''org.opencontainers.image.licenses=GPL-3.0'\''               --label='\''org.opencontainers.image.url=https://github.com/oznu/docker-homebridge'\''            --label='\''org.opencontainers.image.description=Official Homebridge Docker Image'\''           --log-driver=db          --runtime=runc           --detach=true -t oznu/homebridge:ubuntu'

which fails. Obviously I'm not escaping something properly or something like that but I'm not seeing how to solve it.

If I simply echo the entire command rather than executing it, it comes out fine and if executed, works but I want this to work interactively.

sudo docker run --name=homebridge --hostname=homebridge --env=HOMEBRIDGE_CONFIG_UI_PORT=8581 --env=PATH=/opt/homebridge/bin:/var/lib/homebridge/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env=S6_OVERLAY_VERSION=3.1.1.2 --env=S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 --env=S6_KEEP_ENV=1 --env=ENABLE_AVAHI=0 --env=USER=root --env=HOMEBRIDGE_APT_PACKAGE=1 --env=UIX_CUSTOM_PLUGIN_PATH=/var/lib/homebridge/node_modules --env=HOME=/home/homebridge --env=npm_config_prefix=/opt/homebridge --env=npm_config_global_style=true --env=npm_config_audit=false --env=npm_config_fund=false --env=npm_config_update_notifier=false --env=npm_config_loglevel=error --env=HOMEBRIDGE_PKG_VERSION=1.0.33 --volume=/volume1/docker/homebridge:/homebridge:rw --volume=/homebridge --network=host --workdir=/homebridge --restart=always --label='org.opencontainers.image.title=Homebridge in Docker' --label='org.opencontainers.image.authors=oznu' --label='org.opencontainers.image.licenses=GPL-3.0' --label='org.opencontainers.image.url=https://github.com/oznu/docker-homebridge' --label='org.opencontainers.image.description=Official Homebridge Docker Image' --log-driver=db --runtime=runc --detach=true -t oznu/homebridge:ubuntu

0 Answers0