Automatische Variablenzuweisung

Automatische Variablenzuweisung

Durch die Verwendung dspmq | awk -F '[()]' '{print $2}'erhalte ich eine Ausgabe in mehreren Zeilen. Ich möchte also die Ausgabe der ersten Zeile als betrachten vairable1, die zweite Zeile als variable2und so weiter ...
Wie kann ich das tun?

Antwort1

Angenommen, Sie meinen awkVariablen, dann wäre es sinnvoller, ein Array zu verwenden. Wie:

dspmq | awk -F '[()]' '
  {variable[NR] = $2}
  END {
    print "first line: "variable[1]", third line: "variable[3]
  }'

Wenn du meinstHülseVariable, könnten Sie Folgendes tun:

eval "$(dspmq | awk -F '[()]' -v q="'" '
  function shquote(s) {
    gsub(q, q "\\" q q, s)
    return q s q
  }

  {print "variable"NR"="shquote($2)}'
)"

Wenn Sie die bashShell verwenden, können Sie ein Array verwenden, das Sie mit Folgendem füllen können:

readarray -t variable < <(dspmq | awk -F '[()]' '{print $2}')

Beachten Sie, dass die Array-Indizes in bash(wie in kshdessen Design es kopiert wurde) bei 0 statt bei 1 (erste Zeile in ${variable[0]}) beginnen.

Mit zsh:

variable=("${(f@)$(dspmq | awk -F '[()]' '{print $2}')}")

(erste Zeile in $variable[1])

verwandte Informationen