variable
Powershell Variablen schützen
Weiß jemand, wann sich das Verhalten von Powershell verändert hat? Ich habe in ein paar älteren Scripten Abschnitte ähnlich wie
$X="blabla" write-output "$X"
Hängt man im Output jetzt einen Doppelpunkt an, passiert auf Windows 2012 R2:
write-output "$X:" In Zeile:1 Zeichen:15 + write-output "$X:" + ~~~ Ungültiger Variablenverweis. Nach ":" folgte kein Zeichen, das für einen Variablennamen gültig ist. Verwenden Sie ggf. "${}", um den Namen zu begrenzen. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : InvalidVariableReferenceWithDrive
Die Lösung ist einfach:
write-output "${X}:"
Aber warum sich das Verhalten auf einmal ändert ist unklar.
Download a Variable with PHP
You have a variable in php which should get into a file for download. But you don’t want to put it actually into a file? Then call the following script which does exactly that for you:
$filename=htmlspecialchars($_GET["name"]); $content=$_GET['content']; header("Content-type: text/plain"); header("Content-Disposition: attachment; filename=$filename"); echo("$content");
Bash: Variablen Bearbeiten
Die Bash kann einiges mit Variablen anstellen, was man in vielen Scripten relativ kompliziert gelöst sieht.
Ein Beispiel, das in vielen Scripten vorkommt: Eine Ausgabedatei soll genau so heißen wie die Eingabedatei, aber eine andere Erweiterung haben.
A="test.txt" B="${A%%.txt}.csv"
Was steht jetzt in Variable B?
echo $B test.csv
Wie funktioniert das?
Mit dem ‚%‘-Operator kann man von einer Variable Zeichen vom Ende her löschen.
Mit ‚%%‘ werden auch mehrere Vorkommen der Variable vom Ende her gelöscht.
Vom Anfang her löschen geht mit ‚#‘
Ersetzen ähnlich wie mit sed geht über den ‚/‘-Operator, ‚^‘ und ‚,‘ machen Groß- bzw. Kleinbuchstaben.
Schöne Beispiele dazu finden sich im Web z.B. beim Linuxmagazin.
Näheres dazu ist unter dem Suchbegriff „Parameter Expansion“ zu finden. Auch in der Manpage von bash.