Budowanie ciągów poleceń za pomocą zmiennych z różnymi poziomami i spacjami

Mam skrypt, który działacurl. Chcę mieć możliwość opcjonalnego dodania-H parametr, jeśli łańcuch nie jest pusty. Kompleksowe są poziomy cytowania i spacji.

caption="Test Caption"

if [ "${caption}" != "" ]; then 
    CAPT=-H "X-Caption: ${caption}"
fi

curl -A "$UA" -H "Content-MD5: $MD5" -H "X-SessionID: $SID" -H "X-Version: 1"  $CAPT http://upload.example.com/$FN

Pomysł polega na tym, że zmienna CAPT jest pusta lub zawiera żądany nagłówek -H w takiej samej formie jak inne, np.-H "X-Caption: Test Caption"

Problem polega na uruchomieniu, interpretuje przypisanie jako polecenie do wykonania:

$bash -x -v test.sh
+ '[' 'Test caption' '!=' '' ']'
+ CAPT=-H
+ 'X-Caption: Test caption'
./test.sh: line 273: X-Caption: Test caption: command not found

Próbowałem zresetować IFS przed kodem, ale to nie miało znaczenia.

questionAnswers(3)

yourAnswerToTheQuestion