Ausgabe von Kommandos in Variablen umlenke

bsd5543

IT of the living dead
Hi all,

muss mich mal als absoluter Script-Dummy outen.

Ich möchte die Ausgabe von
Code:
date +%y%m%d

in eine Variable umlenken.

Wenn ich nun im Script
Code:
DATUM='date +%y%m%d'

eingebe, dann wird der Variblen nur der String übergeben. Was mache ich falsch?

cheers
 
Aeh .. sorry, vielleicht schwer zu sehen. Nimm statt einem normalen Strich "'" einen (IMHO) Backtick (von oben links nach unten rechts), "`".
 
Die Theorie dahinter.

Unixartige shells überprüfen die Eingabe, führen wenn nötig
Ersetzungen durch und leiten das dann erst an denn
eigentlichen Befehl weiter.

Im gegensatz zu Ms-Dos wo jeder Befehl
selbst für Ersetzungen zuständig ist.
Code:
>	"	double quote	Dateinamenersetzung abschalten.
>	'	tick mark	Jede Ersetzung abschalten.
>	`	back tick	Kommando durch seine Ausgabe ersetzen.
>	\	backslash	Das folgende Zeichen schützen.
So sieht Quoting unter Unix aus. (ruled wida amoi)
Wie gasagt ist das alles Sache der Interpreter_Shell.
(Hab ich im übrigen nur wo abgeschrieben.)

MfG nap
 
Statt `KOMMANDO` würde ich eher $(KOMMANDO) empfehlen, das kann man nämlich problemlos ineinander schachteln und es gibt keine Verwechselungen mit den ', wie das dem OP passiert ist.

stefan schrieb:
In perl geht das so:
Shell != Perl.
 
Zurück
Oben