私はWilliam Shotsの「The Linux Command Line」に従います。私が理解しているように、>
オペレータは標準出力をファイルに保存し、ファイル<
から標準入力を取得します。
キーボードがデフォルトの標準入力であり、<
特定のファイルからのみ入力を受け取る場合は、含まれているls -l
場所と同じではないのはなぜですかls < some_params.txt
?some_params.txt
-l
事前にありがとう
答え1
where will contain
ls -l
と同じではないのはなぜですか?ls < some_params.txt
some_params.txt
-l
コマンドラインは標準入力ではないからです!
ls
標準入力を使用しないため、ここでは良い例ではありません。インポートされたコマンドラインオプションだけを処理し、いくつかのディレクトリを参照して、リストを標準出力に印刷します。
しかし、このようなことを考えてみてくださいcat -n
。-n
コマンドラインからフラグを取得し、標準入力から読み取り、行番号を追加して標準出力に印刷します。それ以外の場合、< filename
入力は端末(キーボードなど)から提供されます。これによりファイルからインポートされます。
あなたができることは、コマンド置換を使用してファイルの内容をコマンドラインに挿入することです。ls $(cat some_params.txt)
(またはls $(< some_params.txt)
それをサポートするシェルで)提案されているように行われます。