BASH:“读线时???”

时间:2014-01-10 02:35:20

标签: bash

我理解下面的格式......

while read line
do
    etc...

但是,我昨天看到了这一点,但未能弄清楚以下var会是什么:

while read pkg var
do
    etc...

由于

2 个答案:

答案 0 :(得分:2)

read内置函数将读取多个以空格分隔的空格(或实际上,由$IFS中的任何值分隔)。

 echo a b c | (read x y z; echo "$y")   
 #=> b

如果有多个字段而不是传递给read的变量,则最后一个变量将获得该行的其余部分。

答案 1 :(得分:2)

while循环将逐个读取var,但将最后的部分分配给一个var。

例如,我有一个像:

这样的文件
a b c d

运行命令时

$ while read x y
do
   echo $x
   echo $y
done < file

Resule:

a
b c d

你会得到“b c d”到$ y。

当然,如果你只分配一个var(行),那么$ line将得到整行。