cURL 명령을 반복할 수 없습니다.

cURL 명령을 반복할 수 없습니다.

다음을 사용하여 개별 cURL 명령을 실행할 수 있습니다.

curl -u user:password -v -XPOST -H 'Content-type: text/xml' -d '<featureType><name>quadrella_indica</name></featureType>' http://localhost:8080/geoserver/rest/workspaces/opengeo/datastores/species/featuretypes

하지만 shp 파일의 전체 목록을 반복해야 하므로,

for f in *.shp
   do 
   a=${f,,};
   curl -u user:password -v -XPOST -H 'Content-type: text/xml' -d    '<featureType><name>${a%.*}</name></featureType>' http://localhost:8080/geoserver/rest/workspaces/opengeo/datastores/species/featuretypes 
done

하지만 개별적으로 추가할 때 나타나는 성공과 달리 반복할 때 오류가 발생합니다.

* About to connect() to localhost port 8080 (#0)
*   Trying ::1... connected
* Server auth using Basic with user 'admin'
> POST /geoserver/rest/workspaces/opengeo/datastores/species/featuretypes HTTP/1.1
> Authorization: Basic YWRtaW46Z2Vvc2VydmVy
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: localhost:8080
> Accept: */*
> Content-type: text/xml
> Content-Length: 47
> 
* upload completely sent off: 47out of 47 bytes
< HTTP/1.1 400 Bad Request
< Server: Apache-Coyote/1.1
< Content-Type: text/plain
< Transfer-Encoding: chunked
< Date: Sun, 25 Nov 2012 18:19:31 GMT
< Connection: close
< 
* Closing connection #0
Trying to create new feature type inside the store, but no attributes were specified

개별 cURL이 제대로 작동하므로 루프에서 문제가 발생했습니다. 어떻게 수정할 수 있나요?

답변1

변수는 작은따옴표 내에서 확장되지 않지만 큰따옴표가 사용됩니다.

curl ... "...${var%.*}..."

관련 정보