シェル変数 $_ が予期せず動作します。

シェル変数 $_ が予期せず動作します。

行数が異なるのはなぜですか?

$ head -n 100000 ./access.log > ./data/log.sample
$ cat $_ | wc -l
1933424

ベストアンサー1

$_./access.log代わりに(最後に実行されたコマンドの最後の引数)に展開されます./data/log.sample

したがって、実際に表示されるのは行数です./access.log

Redirect()はコマンドが開始される前にシェルによって実行されるため、>コマンドの一部ではありません。だからあなたは得るでしょう。headhead$_./access.log


からman bash

($_、アンダースコア)シェルの起動時に環境または引数リストに渡されたシェルを呼び出すために使用される絶対パス名または実行中のシェルスクリプトに設定します。その後、前のコマンドの最後の引数に展開されます。、拡張後。また、実行された各コマンドを呼び出し、そのコマンドにエクスポートされた環境にデプロイするために使用されるフルパス名に設定されます。メールを確認すると、このパラメーターにはメールファイルの名前が保持されます。

おすすめ記事