我正在写一个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