我正在寫一個shell腳本,在這裏我要提取文件,該文件是類型的內容超出這個值:的Unix shell腳本:從文件賦值給變量進入while循環,並使用循環
TYPE1 |值a
TYPE2 | VALUEB
TYPE1 | valueC
TYPE2 |價值
3型| valueE
....
力typen | valueZ。
對於column_1
每種類型的,我有一個目標變量,它串接相同類型的值,以獲得這樣的結果:
VAR1 =值a,valueC
VAR2 = VALUEB ,價值
VAR3 = valueE
.....
腳本實現了這樣的事情:
var1="HELLO"
var2="WORLD"
...
cat $file | while read record; do
#estract column_1 and column_2 from $record
if [ $column_1 = "tipo1" ]; then
var1="$var1, column_2" ## column_2 = valueB
elif ....
....
fi
done
但是當我嘗試使用的任何變量在哪裏鏈column_2
值:
echo "$var1 - $var2"
我得到的原始值:
HELLO - WORLD.
搜索互聯網,我請閱讀該問題與管道創建實際值被複制的子shell的事實有關。
有沒有辦法解決這個問題!?最重要的是,有一種方法可以適用於所有類型的shell,實際上,這個腳本必須運行在不同的shell上! 我不想使用文件支持來編寫部分結果。
所有開始寫作的人sh應該要求使用ell腳本來閱讀整個BASH常見問題解答,以避免不可避免的問題。 – Sorpigal 2010-11-30 14:37:05