변수 자동 할당

변수 자동 할당

를 사용하면 dspmq | awk -F '[()]' '{print $2}'여러 줄로 출력됩니다. 그래서 첫 번째 라인 출력을 vairable1, 두 번째 라인 출력 variable2등 으로 간주하고 싶습니다 .
어떻게 할 수 있습니까?

답변1

변수를 의미한다고 가정하면 awk배열을 사용하는 것이 더 합리적입니다. 좋다:

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

당신이 의미하는 경우껍데기변수를 사용하면 다음을 수행할 수 있습니다.

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

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

쉘을 사용하는 경우 bash다음으로 채울 수 있는 배열을 사용할 수 있습니다.

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

bash(복사한 디자인과 마찬가지로 ) 의 배열 인덱스는 ksh1(의 첫 번째 줄) 대신 0에서 시작한다는 점에 유의하세요 ${variable[0]}.

와 함께 zsh:

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

( 의 첫 번째 줄 $variable[1])

관련 정보