bashとzshで `> foo.txt`と ` < foo.txt`を単独で使用する一般的な規則は何ですか?

bashとzshで `> foo.txt`と ` < foo.txt`を単独で使用する一般的な規則は何ですか?

では無効ですcsh。とbashでこれを使用する一般的な規則は何ですかzsh

答え1

Bashを使用すると、コマンドのないリダイレクトはリダイレクトを実行して閉じます。

  • < foo.txtコマンドライン自体だけでファイルを開いてfoo.txt閉じることができます。
  • > foo.txt書き込み用にファイルを開き、foo.txt必要に応じてファイルを作成して切り取り、閉じます。ファイルを消去する簡単な方法。

zshを使用すると、リダイレクトNULLCMDまたはREADNULLCMD

  • READNULLCMD(またはNULLCMD「READNULLCMD」が設定されていない場合)標準入力リダイレクトの場合:

    % echo foo > foo.txt
    % READNULLCMD=nl
    % < foo.txt
         1  foo
    
  • NULLCMD標準出力リダイレクトの場合:

    % NULLCMD='ls'
    % > foo.txt   # runs $NULLCMD
    % < foo.txt   # runs $READNULLCMD, showing the output of `NULLCMD` run previously
         1  Applications
         2  Desktop
         3  Documents
         4  Downloads
    

バラよりZsh 7.3、コマンドレスリダイレクト詳細:

単純なコマンドが1つ以上のリダイレクト演算子と0つ以上のパラメータ割り当てで構成されていますが、コマンド名がない場合、zshはさまざまな方法で動作できます。

NULLCMDこのパラメーターが設定されていない場合、またはCSH_NULLCMDこのオプションが設定されているとエラーが発生します。これは掘削これは動作で、CSH_NULLCMD シミュレーション時にデフォルトで設定されます。掘削

このオプションを設定すると、組み込みコマンドがSH_NULLCMD指定:されたリダイレクトとともにコマンドとして挿入されます。シミュレーション時のデフォルト値です。シェンまたはケシ

それ以外の場合、このパラメーターが設定されている場合、NULLCMDその値は指定されたリダイレクトと共にコマンドとして使用されます。とがすべて設定されている場合、NULLCMDリダイレクト READNULLCMDが入力されると、電子値の代わりに後者の値が使用されます。デフォルトはNULLCMD" cat"、デフォルトはREADNULLCMD" more"です。だから

< file

標準出力にファイルの内容を表示するか、端末の場合はページングを表示します。シェル関数を参照することもできますNULLCMDREADNULLCMD

関連情報