Content #
可以使用与重定向STDOUT和STDERR相同的方法,将STDIN从键盘重定向到其他位置。在Linux系统中,exec命令允许将STDIN重定向为文件:
exec 0< testfile
该命令会告诉shell,它应该从文件testfile中而不是键盘上获取输入。只要脚本需要输入,这个重定向就会起作用。来看一个用法示例:
$ cat test12
#!/bin/bash
# redirecting file input
exec 0< testfile
count=1
while read line
do
echo "Line #$count: $line"
count=$[ $count + 1 ]
done
$ ./test12
Line #1: This is the first line.
Line #2: This is the second line.
Line #3: This is the third line.
$
将STDIN重定向为文件后,当read命令试图从STDIN读入数据时,就会到文件中而不是键盘上检索数据。
这是一种在脚本中从待处理的文件读取数据的绝妙技术。Linux系统管理员的日常任务之一就是从日志文件中读取并处理数据。这是完成该任务最简单的办法。
From #
Linux命令行与shell脚本编程大全