`sort < "$ f1" `が `sort - "$f1"`よりも優れているのはなぜですか、 `sort "$f1"`より良い理由は何ですか?

`sort <

~からhttps://unix.stackexchange.com/a/458074/674

使用することを覚えておいてください-- コマンドに任意のパラメータを渡すとき(または可能であればリダイレクトを使用してください)。だからsort -- "$f1"またはそのsort < "$f1"代わりに良いですsort "$f1"

最初に使用し--てリダイレクトするのはなぜですか?

なぜsort < "$f1"優先順位を置くのですsort -- "$f1"か?

なぜ sort -- "$f1"優先順位を置くのですsort "$f1"か?

ありがとうございます。

ベストアンサー1

sort "$f1"

$f1次から始まる値-または次sortから始まる値は失敗します(たとえば、+呼び出されるファイルに重大な結果が生じる可能性があります)。-o/etc/passwd

sort -- "$f1"

-- オプションの終わりを意味します)はほとんどの問題を解決しますが、呼び出されるファイル-sort標準入力として解釈されます)ではまだ失敗します。

sort < "$f1"

そのような問題はありません。

ここではファイルを開くシェルです。これは、ファイルを開くことができない場合に役立つ可能性があるエラーメッセージも表示することを意味します(たとえば、ほとんどのシェルはスクリプトの行番号を表示します)。可能であれば、リダイレクトを使用してファイルを開くと。

そして

sort < "$f1" > out

sort -- "$f1" > out逆)"$f1"開くことができない場合は、out作成/切り捨ても実行もできませんsort

発生する可能性のある混乱を取り除くために(以下を参照)、ファイル自体が検索可能であれば、コマンドをmmap()ファイルに入れたりlseek()ファイル内に入れたりすることを防ぎません。sort唯一の違いは、ファイルが後で別のファイル記述子に存在する可能性のあるコマンドによって開かれるのではなく、ファイル記述子0のシェルによってより早く開くことです。このコマンドは、必要に応じてfd 0を検索またはマッピングできます。cat file | cmd今回cmdはstdinがマッピング/照会できないパイプであるという事実とこれを混同しないでください。

おすすめ記事