11
シェルが「猫の無駄な使用」を自動的に修正しないのはなぜですか?[閉まっている]
多くの人々は、ラインに沿ってコードを含むonelinersとスクリプトを使用します cat "$MYFILE" | command1 | command2 > "$OUTPUT" cat技術的には/usr/bin/cat、コマンドが実行された場合にこれを回避できる新しいプロセス(多くの場合)を開始する必要があるため、最初は「catの無駄な使用」と呼ばれます。 < "$MYFILE" command1 | command2 > "$OUTPUT" シェルは起動するcommand1だけでstdin、指定されたファイルをポイントするだけです。 シェルがこの変換を自動的に行わないのはなぜですか?「猫の無用な使用」構文は読みやすく、無用な猫を自動的に取り除くのに十分な情報がシェルにあるはずです。catシェルはパスにバイナリを使用する内部代わりに、それを実装することができなければならないので、POSIX規格で定義されています。シェルには、1つの引数バージョンのみの実装と、パス内のバイナリへのフォールバックさえ含めることができます。