Bash: Übergabevariable als einzelner Parameter / Shell-Anführungszeichenparameter

Ich schreibe ein Bash-Skript, das eine Variable an ein anderes Programm übergeben muss:

./program $variable

Das Problem ist, dass $ variable unbedingt als einzelner Parameter übergeben werden muss, was bei Leerzeichen nicht der Fall ist.

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

Zitieren macht gar nichts (gut gemacht, bash devs):

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

Doppelte Anführungszeichen machen verrückte Sachen (gut gemacht, bash devs):

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

Gibt es eine einfache Möglichkeit, dies zu tun? Mist, gibt es eine Möglichkeit, dies überhaupt zu tun?

Aktualisieren: Okay, da das Problem nicht so heftig zu sein scheint, gibt es hier einige zusätzliche Informationen. Das Programm, an das ich Argumente übergebe, ist ein Python-Skript. Ohne die Argumente in irgendeiner Weise zu ändern, bekomme ich

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

Wie kann ich das beheben?

Bearbeiten: Nein, ich habe es nicht versucht

variable="Hello World"

weil ich niemals $ variable deklariere. Es wird nicht in meiner Bash-Funktion deklariert und ich darf es nicht ändern.

Bearbeiten: Okay, ich habe es so funktionieren lassen.

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

Ich würde gerne wissen, warum das so funktioniert und nicht anders.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage