Ich habe einige alte Skripte, die ich zu aktualisieren versuche. Ein Teil des Codes verdichtet sich zu:
export X=`(echo "abc"; echo "def")`
echo $X
was die erwartete Ausgabe ergibt:
abc def
Jetzt sagt mir das Internet, dass Backticks raus sind, $()
was ich verwenden muss, aber wenn ich versuche:
export X=$((echo "abc"; echo "def"))
X
ist nicht gesetzt und ich bekomme die Fehlermeldung:
bash: echo "abc"; echo "def": syntax error: invalid arithmetic operator (error token is ""abc"; echo "def"")
Was mache ich falsch?
`...`
und$(...)
eine Unterschale trotzdem starten, so dass die inneren(...)
nicht benötigt werden (einen Prozess verschwenden). Sie würden den Raum in Dingen wie$( (...); (...) )
zum Beispiel (wo die inneren Unterschalen benötigt werden können) benötigen.Versuchen
export X="$(echo "abc"; echo "def")"
quelle
ksh
undbash
die einzigen Ausnahmen darstellen).