Wie verwende ich Shell-Variablen in einem awk-Skript?

Fand ich einige Möglichkeiten zum übergeben von externen shell-Variablen zu einer awk Skript, aber ich bin verwirrt über ' und ".

Zuerst versuchte ich mit einem shell-Skript:

$ v=123test
$ echo $v
123test
$ echo "$v"
123test

Dann versuchte awk:

$ awk 'BEGIN{print "'$v'"}'
$ 123test
$ awk 'BEGIN{print '"$v"'}'
$ 123

Warum ist der Unterschied?

Schließlich habe ich versucht, dieses:

$ awk 'BEGIN{print " '$v' "}'
$  123test
$ awk 'BEGIN{print ' "$v" '}'
awk: cmd. line:1: BEGIN{print
awk: cmd. line:1:             ^ unexpected newline or end of string 

Ich bin verwirrt darüber.

Kommentar zu dem Problem - Öffnen
Ich mag das -v wie unten gezeigt, aber das ist wirklich eine gute übung, darüber nachzudenken, wie die schützen, die Dinge aus der Schale. Arbeiten durch diese, meine erste schneiden Sie umgekehrte Schrägstriche verwenden, über Räume und dollar-Zeichen. Unnötig zu sagen, die Beispiele hier waren auch Wert, meine Zeit. Kommentarautor: Chris

InformationsquelleAutor der Frage hqjma | 2013-09-29

Schreibe einen Kommentar