• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Grundlegende Frage - Bash

gameace

Newbie
Warum funktioniert eigentlich nicht
$(echo "irgendwas1")="irgendwas2" in der bash ?
Warum wird irgendwas1 nicht als variablennamen interpretiert?
Es gibt es dabei vielleicht einen anderen Weg?
Oder ist das einfach nur bei mir so... :oops: oder noch schlimmer hab ich wat falsch gemacht...?[/code]
 
OP
G

gameace

Newbie
Wie meinst du das?
So $(echo "$irgendwas1")="irgendwas2" ?
dann wird "$irgendwas1" doch als variable interpretiert die es nicht gibt.
Ich möchte eigentlich das der Name der Variable die "irgendwas2" enthalten wird,den Namen hat der von echo ausgeben wird.
 

}-Tux-{

Hacker
Hi

mach es am besten so:

irgendetwas2=`echo $irgendetwas1`

So ist es am einfachsten, wie ich finde :)

mfg }-Tux-{
 
OP
G

gameace

Newbie
Ich schildere mal mein eigentlich Problem:

transfervar()
{
declare $1=$(cat $tmp$$) && export $1 && rm $tmp$$
}

Nun möchte ich gern über die Funktion hinaus auf diese Variable zugreifen,geht aber net.... :oops:
 

regexer

Advanced Hacker
Die Lösung für dein erstes Beispiel lautet:
Code:
eval $(echo irgendwas1)="irgendwas2"
Als Lösung für dein Funktion-Problem: Ersetze den befehl "declare" durch "eval". Der Befehl "declare" bewirkt, dass nur der funktion die Variable bekannt ist. Hierzu der Code (ich habe noch ein bisschen was hinzugefügt, dass es bei mir testweise richtig laufen kann):
Code:
tmp=test.
echo irgendwas2 > $tmp$$

transfervar()
{
eval $1=$(cat $tmp$$) && export $1 && rm $tmp$$
}

transfervar irgendwas1
echo $irgendwas1
 
Oben