追加読書

追加読書

私はbashエクスポートファイルを整理し、それらが属する環境に応じて変数を分類しています。

たとえばHISTIGNORE、、PATHなどPS1MANPAGER「Bashセクション」と「Manセクション」にあります。

$EDITORおよび/または$VISUALはどうだろうか。 bashのマニュアルページに見つかりません。

答え1

あなたはそれを誤って分類しましたPATH。どちらもそれにEDITOR属します。VISUAL

これらの変数のアイデア所定の位置にある特定のアプリケーションでは無効です。標準化され、潜在的に使用できます。どのこれを必要とするアプリケーション。

  • もしどの実行可能プログラムのパスを検索したいアプリケーションはを使用できますPATH。 (実際に呼び出すすべてのアプリケーションの場合ですexecvp()。)
  • もしどのアプリケーションは、SHELLプログラムイメージファイルを見つけるために使用できるシェルを呼び出そうとします。
  • もしどのラインエディタを呼び出すアプリケーションはEDITOR
  • もしどのビジュアルエディタを呼び出すアプリケーションはVISUAL
  • もしどのページャを呼び出すアプリケーションはを使用できますPAGER
  • もしどのアプリケーションは、ホームディレクトリがどこにあるかを知りたいと思いますHOME

など。

対照的に、HISTIGNORE環境PS1変数はまったく必要ありません。後者は標準でのみ言及されています(説明はありませんが)。一つできるセッションリーダープロセスまたはその他のトップレベルの親プロセスで環境変数に設定し、環境の継承を使用してシェルからそれらを取得できるようにします。

しかし、一人ができること代わりにただ次のように設定してください。シェル環境にエクスポートするのではなく、各シェル(シェルに応じて)で自動的に実行されるスクリプトの変数です。たとえば、次のようになります。私の~/.zshrcコレクションがありますPS1RPROMPTシェル変数、彼らいいえ次へエクスポート環境変わりやすい。

追加読書

答え2

man bash次の2つの変数が挙げられますedit-and-execute-command

現在のコマンドラインからエディタを呼び出し、結果をシェルコマンドとして実行します。 Bashは$VISUAL$EDITORおよびエディタを順番に呼び出そうとします。emacs

他のプログラムはこれらの変数を頻繁に使用します。

関連情報