只是一个简单的问题 - 我想知道以下代码在做什么:
nlwd="$PWD/NLWD.txt"
cat /dev/null > $nlwd
echo "Enter filename to process:"
read name
while read line
do
uid="$(echo $line | cut -d, -f1)"
echo "$uid" | grep [0-9] >> $nlwd
done < $name
特别是,我想知道done < $name
正在做什么。
答案 0 :(得分:1)
这是一个输入重定向。 while
循环(以及while
循环中的每个命令,特别是read
)将从$name
命名的文件中获取其标准输入。
答案 1 :(得分:1)
它采用文件名,逐行读取该文件,并对每行进行处理。
<
是输入重定向,这意味着循环从$name
获取输入。
例如:
while read LINE
do
echo $LINE
done < $name
...基本上与:
相同cat $name
在回复您的评论时,cat /dev/null > $nlwd
只会清空文件的内容。这一次,它使用>
输出重定向来获取/dev/null
(这是Linux的黑洞文件)的内容,并将该空白输出到由$nlwd
变量表示的文件中。这是一个更简单的例子:
$> echo "something" > something.txt
$> cat something.txt
something
$> cat /dev/null > something.txt
$> cat something.txt
$>