
透過使用dspmq | awk -F '[()]' '{print $2}'
我將獲得多行輸出。所以我想將第一行輸出視為 a 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
shell,您可以使用一個可以填入的陣列:
readarray -t variable < <(dspmq | awk -F '[()]' '{print $2}')
請注意,中的陣列索引bash
(就像ksh
它複製的設計一樣)從 0 而不是 1(中的第一行${variable[0]}
)開始。
和zsh
:
variable=("${(f@)$(dspmq | awk -F '[()]' '{print $2}')}")
(第一行$variable[1]
)