Построение командных строк с использованием переменных с различными уровнями кавычек и пробелами

У меня есть скрипт, который запускаетсяcurl, Я хочу, чтобы иметь возможность добавить-H параметр, если строка не пуста. Что является сложным, так это уровни цитирования и пробелы.

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

Идея состоит в том, что переменная CAPT либо пуста, либо содержит требуемый заголовок -H в той же форме, что и другие, например,-H "X-Caption: Test Caption"

Проблема в том, что при запуске он интерпретирует назначение как команду, которая будет выполнена:

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

Я пытался сбросить IFS перед кодом, но это не имело значения.

Ответы на вопрос(3)

Ваш ответ на вопрос