「熱のエクスポート」とは何をしますか?

「熱のエクスポート」とは何をしますか?

このコマンドの重要性は何ですかexport COLUMNS

私が知っているのは、それがグローバル変数であることだけです。

* nixスクリプトの冒頭でよく見られます。

答え1

現在の端末ウィンドウの幅(ASCII文字)。

からman bash

   COLUMNS
          Used  by  the  select  builtin command to determine the terminal
          width when printing selection  lists.   Automatically  set  upon
          receipt of a SIGWINCH.

より一般的なものもありますksh

          COLUMNS
                 If this variable is set, the value is used to define  the
                 width of the edit window for the shell edit modes and for
                 printing select lists.

実際の部分では、仮想端末ウィンドウのサイズが変更されると、この変数の値も変更されることに注意してください。 (上記の内容がSIGWINCHアクティブシェルに転送される場合です。)

答え2

この回答は、Solaris、HP-UX、AIX、BSD、Linux(どのディストリビューション?)など、どのようなシステムでこのメッセージが表示されるのか言っていないためです。

環境変数 ROWS および COLUMNS を設定するために使用される呪われた方法でユーザーと対話するシェルスクリプト。

Cursesスタイルの相互作用は、Windowsシステムの前にさかのぼります。したがって、これらのプログラムは通常、xtermウィンドウのサイズを知るために何もしません。したがって、多くの呪いベースのプログラムは、ROWSおよびCOLUMNS環境変数を使用してフィールドとラベルを配置する方法を決定します。

時々、シェルがxtermで実行を開始すると、ROWSおよびCOLUMNS環境変数を見つけて設定しようとします。多くの古いSunOSおよびSolarisシステムでは、これを実行するために/ etc / profileを使用しています。時にはSIGWINCH(少なくともSunOSとSolarisでは)がROWS変数とCOLUMNS変数を設定するために使用されます。ベンダーはxtermを愚かな方法で修正し、xtermで実行されているプロセスグループへのSIGWINCHの配信を中断することが多く、呪いスタイルの相互作用は本当に悪いように見えました。

答え3

文字通り、一部のアプリケーションに端末の幅に対応する文字位置の数を通知します。ほとんどすべての端末は通常のグリッドを使用します。ワイヤーそしてリスト

LINES最初はCOLUMNS(1980年頃)内部変数以来。vicursesシェル変数名前が紹介されます。彼らはいつ可能SunOS4はすでにこれをサポートしており、マニュアルページに記載されている唯一のものは呪いです。ls:

出力形式を決定するには-C-x-mオプション、 /usr/5bin/ls環境変数を使用し、COLUMNS出力ラインで使用可能な文字位置の数を決定します。この変数が設定されていない場合用語情報データベースは、環境変数に基づいて列数を決定するために使用されます。TERM。この情報を取得できない場合は、80列が想定されます。

つまり、この機能はSystem Vで提供され、後で導入されたようです。この約束は1989年、BSDバージョンの場合ls

SVr4curses(およびそれ以降のX / Open Curses)は次の使用法を文書化します。環境次のように端末記述の端末サイズ値をオーバーライドするために使用できるLINES変数COLUMNSuse_env機能。これncurses のマニュアルページこの機能を文書化してください。

同様に、シェルプログラミングの紹介もSystem Vから来たようです。kshSIGWINCHこれらの変数をいつ、どのように結合するかは把握するのが難しく、議論の余地があるかもしれません。しかし現在のこのシェルセットが用意されています。シェル変数いいえ 環境変数)応答SIGWINCHksh93、、。 (もう一度)設定していbashないようです。 Solaris 10を確認しましたが、変数が設定されていません。zshSIGWINCHfishksh88

bash 1.13(1993年9月リリース)の以前の変更ログは、このSIGWINCH機能が1993年3月に追加されたことを示しています。Sven Maschekのページksh93は同年の終わりにリリースされたと推定されています。

シェル変数に値を配置すると、簡単にエクスポートして(環境変数に変更)、特定のプログラムの動作を変更できます。ただし、この変数がある理由は、端子の寸法を決定するのが難しい場合に便利です。

関連情報