2016-03-22 3 views
-2

Ich habe eine Datei mwwtesrepos.xml mit Werten alsWie die Werte einer Datei in einem Shell-Variable übergeben, so dass der Variable kann

in einer URL für mehrere Werte verwendet wird
$cat mwwtesrepos.xml 
test1 
test2 
test3 

Und ich möchte, um die Werte zu übergeben der Datei mwwtesrepos.xml, eins nach dem anderen, in der Base_Url.

Ich habe folgendes versucht, aber es funktioniert nicht:

value=$(cat mwwtesrepos.xml) 
echo $value 

Base_Url="https://stash-url/rest/api/1.0/projects/MWWTES/repos/$value/permissions/groups?permission=1000" 
+0

Definieren "funktioniert nicht" – mustaccio

+0

[Wie kann ich eine Datei (Datenstrom, Variable) Zeile für Zeile (und/oder Feld für Feld) lesen?] (Http://mywiki.wooledge.org/ BashFAQ/001) –

Antwort

1

So:

while read -r value 
do 
    Base_Url="https://stash-url/rest/api/1.0/projects/MWWTES/repos/$value/permissions/groups?permission=1000" 
    echo $Base_Url 
done < mwwtesrepos.xml 

cat in einem Skript manchmal nützlich, aber oft ist es missbraucht.

+0

Dies funktioniert aber nur für den letzten Wert der Datei mwwtesrepos.xml. –

+0

Das nimmt nur "test3" das ist der letzte Wert der Datei mwwtesrepos.xml –

+0

Das funktioniert für mich. Jede Iteration nimmt einen Wert aus der Datei und verwendet ihn in der URL. Was bekommst du vom Echo? Sind Sie sicher, dass alle drei Werte in der Datei das Format wie Sie sind? – cdarke

Verwandte Themen