変数名
説明
$#コマンドラインパラメータ番号$ 0現在のプログラム名$?前コマンドまたは関数の戻りコード$$現在のプログラムのPID
現在使用している環境変数を表示するには、一般的にenvコマンドを使用します。
変数名
説明
PATHシェルがディレクトリまたはプログラムで探すディレクトリを指定します。SHELL現在のユーザーシェルの種類ホーム現在のユーザーのホームディレクトリPS1基本プロンプト
>ユーザ変数(ローカル変数)はもっとカジュアルなので、自分で定義することができます。例えば:
> str = 'Hello World'> echo $ str現在のシェルで定義されているユーザを表示するにはsetコマンドを使います。変数、もちろんsetコマンドは環境変数も出力します。
上で言ったことがわかりますか。続けます。
一緒に遊ぶために子シェルを持ってきましょう
シェルでシェルスクリプトを実行すると、今度はforkが新しいシェルプロセスを作成し、次に親シェルと子シェルの2つのプロセスがあります。親子関係では、親プロセス内のシェル変数は子プロセスに継承されますか? ? ?同時に、子プロセスのシェル変数は親プロセスに返されますか。 ? ?これらはすべて私たちが注意を払う必要があるものです。例を見てみましょう。
親シェルが変数を定義します。
> str = 'Hello World'それから、親シェルで以下のスクリプトを実行します。
#!/bin /bash#親シェルでの出力定義Strecho $ str#出力環境変数echo $ HOMEecho $ PATH実行後、$ str出力は空になりますが、$ HOMEと$ PATHは完全に出力されることがわかります。これはまた、シェルで定義したユーザー変数は現在のシェルでしか使用できず、子シェルであっても他のユーザー変数にはアクセスできないことを示しています;親プロセスの環境変数は子プロセスで使用できます。アクセスしかし、時には、このような要求があります。
子プロセスの中で親プロセスのユーザ変数(ローカル変数)にアクセスするには、どうすればいいですか? ? ?
そのような要求に遭遇したとき、私はexportコマンドについて話さなければなりませんでした。
exportコマンドについての説明
exportコマンドは、子シェルプロセスでアクセスできるように、ユーザー変数を環境変数に設定します。これは中国の輸出の意味とまったく同じです。前の例では、親シェルでコマンドを入力できます。
> export strスクリプトを再度実行すると、ユーザー変数strの値を出力できますが、これがエクスポートの役割です。ただし、親シェルにエクスポート文字列を入力した後、親シェルを閉じると、環境変数は無効になりますので、シェルを開く場合はすぐにエクスポートを設定できます。その起動設定ファイルは、親シェルが閉じているためエクスポートが無効になることはありません。
親と子のもう1つの関係
子プロセスで親プロセスの変数にアクセスできるようになりました子シェルで親シェルの変数を変更すると、親シェルの変数に影響があるかどうか考えたことはありますか?値は何ですか?テストをしたいのですが。
#!/bin /bash#親シェルによって渡された変数strの値を変更します$ str = 'http://www.jellythink.com'echo $ strスクリプトを実行して、親シェルでstrの値を見つけます。変更はありません。実際、これはLinuxのプロセスに関するもう1つのナレッジポイントに関連しています。親プロセスが子プロセスを分岐すると、子プロセスは親プロセスの関連変数をコピーしますが、このとき、子プロセスは親プロセスと同じ値になりますが、同じ名前は同じ値ですが、親プロセスのコピーにすぎません。コピーへの変更は、親プロセスとは無関係です。 Linuxプロセスについては、この記事を参照してください。
そして、子シェルで変数を定義した場合、それは親シェルでアクセス可能ですか?あなたは親シェルの子シェルで定義された変数にアクセスすることはできません。親シェルの子シェルで定義されている変数にアクセスする場合は、一時ファイルを使用してローカル変数を一時ファイルに書き込むことができ、親シェルはそのファイルを読み取って子シェルで定義されている変数にアクセスします。
概要
この記事は多種多様なものが混在していますが、各部分は密接に関連していて連動していますので、Linuxシェル全体を理解することは非常に役に立ち、Linuxシェルを学ぶことも役に立ちます。この記事は少し長く、最初から最後まで読むには少し忍耐が必要です。学ぶためには、少し忍耐が必要です。これはここで要約され、そして次のものはさようならです。
Jelly Think - オリジナルの技術記事共有サイト。 2015年10月21日にフフホトで。
本文に含まれるコマンドといくつかの関連コマンドの要約です。
コマンド
説明
setローカルに定義されているシェル変数を表示します。unset環境変数を消去します。unset str export新しい環境変数を設定します。envユーザーの現在の環境変数をすべて表示します。
リポジトリファイルはFedoraのyumソース(ソフトウェアリポジトリ)の設定ファイルです。通常リポジトリファイルは1つ以上のソフトウェアリポジトリの詳細を定義します、例えばどこにインストールやアップ
一般的に言って、Ubuntuをインストールした後、集中型ディスプレイドライバがインストールされています。ただし、詳細を見ると、グラフィックが不明であることがわかります。つまり、システムがグラフィックカ
今日、Apple Mac OSとMicrosoft Windowsは今日マルチタッチをサポートしていますが、Linuxオープンソースコミュニティもこの点でペースを速めています。 Canonical F
#vi /etc /sysconfig /network-scripts /ifcfg-eth0 DEVICE = eth0#NICに対応するデバイスエイリアスを記述します。BOOTPROTO