변수는 자동으로 할당됩니다.

변수는 자동으로 할당됩니다.

를 사용하면 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( ksh복제된 디자인과 마찬가지로) 의 배열 인덱스는 ${variable[0]}1(첫 번째 행) 대신 0에서 시작합니다.

그리고 zsh:

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

(첫번째 줄 $variable[1])

관련 정보