Ksh
輸出流到變數流
我有兩個針對兩個不同系統執行的查詢。他們每個人都返回一行,我想在一行上輸出它們。
如果查詢產生的結果類似於:
echo this that and more echo other great news
我希望能夠像這樣進行一些重新排序和格式化:
echo other this that great news and more
如果我能弄清楚如何將行的輸出回顯到多個變數中,我會很好。我得到了這個工作:
echo this that and more | while IFS=" ", read a b c do echo a=$a b=$b c=$c done
但是一旦我退出 while 循環,變數 ab 和 c 就超出了範圍並且不再具有它們的值。
並不是說它們超出了範圍,
ksh
(至少 AT&T 版本)沒有bash
. 它read
被稱為兩次。第二次是它失敗並讓你脫離循環的那一次。
由於那一秒
read
沒有讀取任何內容,它會將 a、b 和 c 設置為空字元串。做就是了:
echo this that and more | IFS=" " read a b c echo "a=$a b=$b c=$c"
a=$(echo this...) b=$(echo other...) echo -- "$a $b"