Seu problema é que a expressão {...}
é também sintaxe de shell válida. Por exemplo, execute:
echo file/{one,two}
E você recebe:
file/one file/two
Então, quando você corre:
curl --user $USER:$PASS https://api.example.com/{foo,bar,baz} -o '#1.json'
O {foo,bar,baz}
está sendo interpretado pelo seu shell , e curl
na verdade recebe a linha de comando:
curl --user youruser:secret https://api.example.com/foo https://api.example.com/bar https://api.example.com/baz -o '#1.json'
Como curl
não vê a expressão {...}
, você não recebe o
manipulação mágica para #1
. A solução é simplesmente incluir o URL
entre aspas simples:
curl --user $USER:$PASS 'https://api.example.com/{foo,bar,baz}' -o '#1.json'
As aspas simples inibem qualquer expansão de shell da string.