PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BASH: Variablen in einen Befehl einsetzen



R4R
09-03-2006, 15:39
hallo leute,

ich habe hier ein "kleines" Problem, bin schon am verzweifeln. Hier der Code:



useradd $2 -g group -d /tmp/$2 -s /bin/false
#Variable $3 einlesen.....wie ?
/opt/tarantella/bin/tarantella object new_person --name ".../_ens/o=CVG/ou=" & $3 & "/cn=" & $2 &" --user $2 --surname $2 --enabled true --conntype SSL --links ".../_ens/o=BLA/ou=bla2/cn=WT2 FS"


also ich adde einen user der in der Variable $2 abgespeichert ist, nun möchte ich haben das Variable $3 schon vor dem befehl /opt/... eingelesen wird.

Und der String im Endeffekt so aussieht

adduser user1
organisation EDV

so müsste der output dann ablaufen:


useradd user1 -g group -d /tmp/user1 -s /bin/false
echo "Tippen Sie die Organisation ein:"
/opt/tarantella/bin/tarantella object new_person --name ".../_ens/o=BLA/ou=EDV/cn=user1" --user user1 --surname user1 --enabled true --conntype SSL --links ".../_ens/o=BLA/ou=bla2/cn=WT2 FS"


bitte helft mir weiter :)

vielen dank

ninguno
09-03-2006, 18:11
hab zwar nicht ganz verstanden was du vorhast, aber falls du einfach einen wert von der konsole in eine variable einlesen willst dann geht das so
read -p "Tippen Sie die Organisation ein: " varxy

R4R
09-03-2006, 19:32
dank erstmal aber ich möchte auch den string splitten sprich wo $2 und $3 steht möchte ich die entsprechenden Werte ausgeben die ich zuvor ausgelesen habe.

In Visual Basic ging das früher so:

variable="geht"
string = "derjeweiligesting" & $variable & "weiter."

Ausgabe wäre in diesem fall "derjeweiligestring geht weiter."

hoffe ihr wisst nun was ich meine

ninguno
10-03-2006, 07:30
:confused: :confused: :confused:

variable="geht"
string = "derjeweiligesting" $variable "weiter."

R4R
10-03-2006, 12:46
die lösung ist die:

read -p "Benutzer hinzufuegen " $prompt variable
useradd ${variable} -g group -d /tmp/${variable} -s /bin/false

das war die Lösung. Trotzdem danke.