1

簡単な質問です。次のコードが何をしているのか疑問に思っています。

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ます。

4

2 に答える 2

1

ファイル名を取得し、そのファイルを行ごとに読み取り、各行で処理を行います。

<は入力リダイレクトです。これは、ループが から入力を受け取ることを意味します$name

例えば:

while read LINE
do
  echo $LINE
done < $name

...本質的には以下と同じです:

cat $name

あなたのコメントに応えてcat /dev/null > $nlwd、ファイルの内容を空にするだけです。今回は、>出力リダイレクトを使用して (Linux のブラック ホール ファイル) の内容を取得し、その空を変数で/dev/null表されるファイルに出力します。$nlwdより簡単な例を次に示します。

$> echo "something" > something.txt
$> cat something.txt 
something
$> cat /dev/null > something.txt 
$> cat something.txt 
$>

さらに読む: http://en.wikipedia.org/wiki//dev/null

于 2013-07-30T17:59:53.143 に答える