while read line有2个不同的方式读取文件:
以命令行结果作为输入:
cat /tmp/table.list|while read line; do
echo $line
done
直接以文件作为输入:
while read line; do
echo $line
done</tmp/table.list
脚本是从IBM AIX(KSH)系统中移植过来的,目的是要对DB2数据库中表和索引进行维护。原来的脚本使用的是第1种方式,在IBM AIX下运行是没有问题的。移植到SUSE LINUX(BASH)系统后,发现第1种方式在循环体中运行DB2语句会报找不到数据库连接,需要在循环体中重新重新连接数据库才可以。后来换成第2种方式,就不需要在循环体中重新连接了。