Bash: pass variable como um parâmetro de citação de parâmetro / shell único

Eu estou escrevendo um script que tem que passar uma variável para outro programa:

./program $variable

O problema é que é absolutamente necessário que $ variável seja passada como um único parâmetro, o que não é o caso se ele contiver espaços em branco.

variable=Hello World
./program $variable
-> program receives two arguments: 'Hello' 'World'

Citando isso não faz nada (bem feito, bash devs):

variable=Hello World
./program "$variable"
-> program receives: 'Hello' 'World'

Dupla citando faz coisas malucas (bem feito, bash devs):

variable=Hello World
./program "'$variable'"
-> program receives: "'Hello" "World'"

Existe uma maneira fácil de fazer isso? Heck, existe uma maneira de fazer isso?

Atualizar: Ok, desde que o problema não parece ser bash, aqui estão algumas informações adicionais. O programa para o qual estou passando argumentos é um script python. Sem modificar os argumentos de forma alguma, eu fico

print sys.argv
-> ['/usr/bin/program', "'Hello", "World'"]

Como posso consertar isso?

Editar: Não, eu não tentei

variable="Hello World"

porque eu nunca declaro $ variável. Não está sendo declarado dentro da minha função bash e não estou autorizado a modificá-lo.

Editar: Ok, eu tenho que trabalhar assim.

local temp="$variable"
./program "$temp"

Eu gostaria de saber por que funciona dessa maneira e não de qualquer outra maneira.

questionAnswers(5)

yourAnswerToTheQuestion