Unix / Linux-シェル変数の使用

この章では、Unixでシェル変数を使用する方法を学習します。変数は、値を割り当てる文字列です。割り当てられる値は、数値、テキスト、ファイル名、デバイス、またはその他のタイプのデータです。

変数は、実際のデータへのポインターにすぎません。シェルを使用すると、変数を作成、割り当て、および削除できます。

変数名

変数の名前には、文字(aからzまたはAからZ)、数字(0から9)、または下線文字(_)のみを含めることができます。

慣例により、Unixシェル変数の名前は大文字になります。

次の例は有効な変数名です-

_ALI
TOKEN_A
VAR_1
VAR_2

以下は無効な変数名の例です-

2_VAR
-VARIABLE
VAR1-VAR2
VAR_A!

他の文字が使えない理由 !*、または - これらの文字はシェルにとって特別な意味を持っているということです。

変数の定義

変数は次のように定義されます-

variable_name=variable_value

例-

NAME="Zara Ali"

上記の例では、変数NAMEを定義し、それに値「ZaraAli」を割り当てています。このタイプの変数はと呼ばれますscalar variables。スカラー変数は、一度に1つの値しか保持できません。

シェルを使用すると、必要な値を変数に格納できます。例-

VAR1="Zara Ali"
VAR2=100

値へのアクセス

変数に格納されている値にアクセスするには、その名前の前にドル記号($)−

たとえば、次のスクリプトは、定義された変数NAMEの値にアクセスし、それをSTDOUT-に出力します。

#!/bin/sh

NAME="Zara Ali"
echo $NAME

上記のスクリプトは次の値を生成します-

Zara Ali

読み取り専用変数

シェルは、読み取り専用コマンドを使用して、変数を読み取り専用としてマークする方法を提供します。変数が読み取り専用としてマークされた後は、その値を変更できません。

たとえば、次のスクリプトは、NAME −の値を変更しようとしたときにエラーを生成します。

#!/bin/sh

NAME="Zara Ali"
readonly NAME
NAME="Qadiri"

上記のスクリプトは次の結果を生成します-

/bin/sh: NAME: This variable is read only.

変数の設定解除

変数の設定を解除または削除すると、シェルは追跡する変数のリストから変数を削除するように指示されます。変数の設定を解除すると、変数に格納されている値にアクセスできなくなります。

以下は、を使用して定義された変数の設定を解除するための構文です。 unset コマンド-

unset variable_name

上記のコマンドは、定義された変数の値を設定解除します。これは、コマンドがどのように機能するかを示す簡単な例です。

#!/bin/sh

NAME="Zara Ali"
unset NAME
echo $NAME

上記の例では何も出力されません。unsetコマンドを使用してunset マークされている変数 readonly

変数タイプ

シェルが実行されているとき、3つの主要なタイプの変数が存在します-

  • Local Variables−ローカル変数は、シェルの現在のインスタンス内に存在する変数です。シェルによって開始されるプログラムでは使用できません。これらはコマンドプロンプトで設定されます。

  • Environment Variables−環境変数は、シェルのすべての子プロセスで使用できます。一部のプログラムは、正しく機能するために環境変数を必要とします。通常、シェルスクリプトは、実行するプログラムに必要な環境変数のみを定義します。

  • Shell Variables−シェル変数は、シェルによって設定され、正しく機能するためにシェルによって必要とされる特別な変数です。これらの変数の一部は環境変数ですが、その他の変数はローカル変数です。