実行するスクリプトがあります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 をリセットしようとしましたが、違いはありませんでした。