2017-04-21 8 views
-1

Hallo bekommen bin ich ein wenig verwirrt mit einem Problem, jetzt habe ich dieses Skript in meinem JenkinsSkript Shell - Name gesamte Datei

curl -H "Authorization: Basic $key" -F [email protected]"case/target/$POM_ARTIFACTID-$POM_VERSION.zip" -X POST $CLOUDHUB_DEPLOY_URL

Es das Artefakt-ID und Version von der pom.xml nimmt also in diesem Fall ist es "test-1.0.0" .zip. Dies basiert auf POM, normaler Name der Datei ist "test-7c605e12ee7d9424d3a67a656a73bb14c6c92d78.zip", aber ich möchte einfach die $ POM_ARTIFACTID mit dem - und lesen Sie den Rest der Zeichenfolge (7c605e12ee7d9424d3a67a656a73bb14c6c92d78) und an den Dateinamen anhängen. Ich habe versucht, einige Regex als -F Datei = @ "Fall/Ziel/$ POM_ARTIFACTID -/*. Zip", aber leider hat es nicht geholfen. Ich bin sehr neu in der Shell Scripting so Sory, wenn es hässlich klingt.

Antwort

0

mein Verständnis ist, dass Sie eine Datei auf der Festplatte wie dieses:

% ls case/target/test-7c605e12ee7d9424d3a67a656a73bb14c6c92d78.zip 
case/target/test-7c605e12ee7d9424d3a67a656a73bb14c6c92d78.zip 

du hast Recht, dass Globbing nicht mit Rotation des Formulars Upload funktioniert:

% curl -F [email protected]"case/target/test-*.zip" -X POST localhost:80 
curl: (26) couldn't open file "case/target/test-*.zip" 

aber Sie verwenden können, shell Globbing Ihre Datei erhalten zuerst:

% file="$(ls case/target/test-*.zip)" 
% echo $file 
case/target/test-7c605e12ee7d9424d3a67a656a73bb14c6c92d78.zip 

und dann funktioniert es:

% curl -F [email protected]"${file}" -X POST localhost:80 
<html><body><h1>It works!</h1></body></html> 

Ihre Befehle könnte wie folgt aussehen:

file="$(ls case/target/$POM_ARTIFACTID-*.zip)" 
curl -H "Authorization: Basic $key" -F [email protected]"${file}" -X POST $CLOUDHUB_DEPLOY_URL