Variablennamen aus andere Variable zusammenbauen?

HobbyStern

Aktives Mitglied
Mitglied seit
5 Dez 2005
Beiträge
1,844
Punkte für Reaktionen
0
Punkte
36
Hallo Gemeinde,

Frage 1

gibt es einen Weg sich eine Variable aus einer anderen zusammenzubauen, s.h. :

Ich frage "x" mal etwas ab, jedes mal wird x +1 erhöht.

Nun muesste ich die Antwort in ${Antwort1} speichern, Frage 2 in ${Antwort2} etc.

Ist es machbar das ich Antwortx setze und auch diese somit erhöhen kann?

Frage 2

Wenn ich das oben genannte kann, kann ich auch einen System Aufruf variieren, er soll alle Variablen die ich oben erstellt habe übergeben, also :

exten => s,1,System(ein-skript.sh ${ANTWORT1} ${ANTWORT2} etc.)

Da komme ich an meine Asterisk Grenzen :)

Liebe Grüsse!

Stefan
 
Im Dialplan? Dein Stickwort heißt concatenate
String Concatenation
To concatenate two strings, simply write them together:


${foo}${bar}
555${theNumber}
${longDistancePrefix}555${theNumber}
 
@TrinityOne

So geht es natürlich, heute ist es spät - ich krieg es nicht mehr zusammen, aus irgendeinem Grund ging es leider nicht auf diese Weise...update - ich konnte es so nicht machen da ich die menge an antworten nicht kenne, es soll später so dynamisch sein das die variablen beliebig hoch dimensionert werden können, jedoch in meiner aktuell lösung muss jede variable eindeutig sein - also an "system" übergeben werden, aber wie unten zu lesen geht es sicherlich auch anders, zBsp. durch eine permanente übergabe einer variable an die bash, welche dann einen csv-satz bilden muss oder simpel als append in eine datei und eine zeile schreibt.

@VoipIndianer

AstDB wäre eine Möglichkeit, jedoch muss ich dann die ganze Struktur verändern, geht es nicht mit einer doppelten Verklammerung, á la

Code:
exten => s,1,Set(antwort1 = ${${ANT}${WORT}})


Es geht ja im Endeffekt darum das ich die Variablenanzahl ebenfalls bestimmen muss, ich muss sie also dementsprechend erfinden - oder einen anderen Weg gehen (zBsp. die Aussage per System eben nicht in eine Zeile geben sondern System mit jeder Variablen ausgeben)

Vielleicht erkläre ich das ganze mal mit Hintergrund :

ich möchte gerne einen "Papierform"-Prüfungbogen für Aussendienstler aussortieren, es soll machbar werden das man beliebige prüfbögen vorgelesen bekommt, dann kann man eine note 1-4 vergeben und diese muss dann in eine csv datei geschrieben werden, daraus kann man dann alles andere ableiten (excel, vorlesen, auswerten...)

Ideal bei CSV ist ja alles was mit einer ID vergeben ist in eine Zeile zu geben.

Liebe Grüsse,

Stefan
 
Wieso machst Du nicht
SET(varstring=(${varstring} ${antwort${i}})
Das lässt Du dann in einer Schleife laufen mit i als Zähler den Du inkrementierst. Mit der Funktion ISNULL machst Du ein break der Schleife wenn keine Variablen mehr definiert sind.

Und dann übergibst Du das ganze an Dein Script
exten => s,1,System(ein-skript.sh ${varstring})

Ich habe nicht ganz verstanden was Du da vorhast aber so solltest Du eine vorher unbestimmte Anzahl von Variablen verarbeiten können.
 
Hey, nette Idee.

ich habe gerade noch gelernt das man mit "echo -n" den Zeilenvorschub am Ende von Echo beenden kann, so kann ich dann auch step by step immer mehr in die gleiche zeile der übergabe setzen kann, aber Deine Variante sieht ehrlich gesagt sauberer aus als 50 mal die bash zu maltretieren..

Danke!

LG Stefan
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.