変数はプログラミングの本質的な部分、またはプログラミング言語の精神であると言えます。変数は、文字、数値、英数字を使用してメモリの場所を指定します。これらは、コンピューター プログラムで参照および操作するために使用されます。
変数とは何ですか?
変数は、データまたは有用な情報を値として内部に保存するコンテナです。以下は変数の構文です。
Variable_name =value
変数は 2 つの単語を組み合わせた形式 (variable +able) であり、値を変更でき、複数回使用できることを意味します。
インテリジ アイデア vs エクリプス
変数は、整数、浮動小数点、文字などのあらゆる種類のデータの一時ストレージとして知られています。変数名には次のものが含まれます。 アルファベット、数字、アンダースコア 、名前はアルファベットとアンダースコアのみで始めることができます。
注: 任意の数字で始まる変数名を定義することはできません。
Bash 変数とは何ですか?
適切な情報がなければ bash 変数を使用することはできません ( 構文、データ型、型、動作 ) それについては、Bash 変数の適切な概要を理解するために、この短いチュートリアルを最後まで見てみましょう。
まずは構文を知りましょう。
構文:
Variable_name=value
Bash 変数を定義するために設定されたルール:
- 変数の読み取りまたは出力時には、変数名の前にドル ($) 記号を付けます。
- 変数に任意の値を設定する場合は、ドル記号 ($) を省略したままにしてください。
- 変数名は英数字またはアンダースコア (_) で記述できます。
- 変数名では大文字と小文字が区別されます。x と X は 2 つの異なる変数とみなされます。
- 変数名は、大文字または小文字、または両方を組み合わせて記述することができます。
- 変数は、実行時に Bash によって割り当てられた値に置き換えられるため、Bash スクリプトまたはコマンド ラインのどこにでも配置できます。コマンド実行前に置換を行うことで可能になりました。
- 変数名とその値の間の等号 (=) の両側に空白を入れないでください。以下にいくつかの例を示します 無効な変数 以下に示すように、間に空白 (ドット ... で示されます) があります。
var1=...変数1
var2...=変数2
var3...=...変数3 - 次のような単一文字値を持つ変数を定義するために、一重引用符または二重引用符を使用する必要はありません。 var1=変数 。複数の単語または文字列を単一項目として変数に入力するには、その変数内の内容を引用符で囲みます。
- 一重引用符 ('') は、すべての文字を扱うのに役立ちます。
- 二重引用符 ('') は置換に役立ちます。
データ型
正式なプログラミング言語では、変数宣言時に変数のデータ型を定義する必要があります。例えば:
int year=2012 char comp_name='jtp'
ただし、Bash の場合、変数宣言時に変数のデータ型を定義する必要はありません。 Bash 変数は次のとおりです。 型なし つまり、値を代入して変数名を入力するだけで、そのデータ型が自動的に考慮されます。
変数に数値を代入すると整数として機能し、変数に文字値を代入すると文字列として機能します。
year=2012 comp_name=jtp
echo コマンドを使用して、名前の前に $ 記号を割り当てて読み取ります。
エコー $年
$name をエコーする
Bash 変数の種類
シェルまたは UNIX システムには 2 種類の変数があります。
- システム定義変数
- ユーザー定義変数
1. システム定義変数: これらは、LINUX オペレーティング システム自体によって作成および維持されるため、事前定義された変数です。標準的な規則では、通常は大文字、つまり UPPER_CASE で定義されます。したがって、大文字で定義されている変数がある場合は、それがシステム定義の変数である可能性が高くなります。
これらは、次に示すシステム定義変数です。
1. バッシュ はシェル名を表します。
例:
BASH=/usr/bin/bash
2.BASH_VERSION Bash が保持するシェルのバージョンを指定します。
例:
BASH_VERSION=4.2.46(2)
3. コラム 番号を指定してください。画面の列の数。
例:
COLUMNS=80
4. ホーム ユーザーのホームディレクトリを指定します。
例:
HOME=/home/jatpoint
5. ログ名 ロギングユーザー名を指定します。
例:
LOGNAME=javatpoint
6. OSタイプ OSの種類を示します。
例:
OSTYPE=linux-gnu
7.障害者 現在の作業ディレクトリを表します。
例:
PWD=/home/javatpoint
8. ユーザー名 現在ログインしているユーザーの名前を指定します。
例:
USERNAME=javatpoint
システム内のこれらの変数のリストを確認するには、次のコマンドを入力します。 設定、環境 、 そして printenv コマンドラインターミナルで次のように実行します。
1. セット 指示。
出力:
2. 環境 指示
出力:
3. printenv コマンドを入力する
出力:
Bash Shell を通じてこれらの変数を呼び出してみましょう。指定された手順は次のとおりです。
ステップ1: Bash_sdvar という名前のスクリプトを作成し、Bash コンソールに次のコードを入力します。
#! /bin/bash # Bash System-defined Variables echo $HOME # Home Directory echo $PWD # current working directory echo $BASH # Bash shell name echo $BASH_VERSION # Bash shell Version echo $LOGNAME # Name of the Login User echo $OSTYPE # Type of OS
ステップ2。 以下の Bash コンソールを見てください。
ステップ3。 スクリプトを保存して実行します。以下の図に示すように、出力が表示されます。
出力:
2. ユーザー定義変数: これらの変数はユーザーによって作成および維持されます。通常、これらのタイプの変数は LOWER_CASES で定義されます。これらの変数を小文字で記述するという厳密な規則はありません。大文字でも書くことができます。
これらの変数を定義する Bash スクリプトを作成しましょう。以下に示す手順に従ってください。
ステップ1。 という名前のスクリプトを作成します バッシュヤード そして、Bash コンソールに次のコードを入力します。
#! /bin/bash # User-Defined Variables name=Peter ROLL_NO=5245325 echo 'The student name is $name and his Roll number is $ROLL_NO.'
ステップ2。 Bash コンソールのコードを参照してください。
ステップ3。 スクリプトを保存して実行します。
出力:
Bash 変数の働き
変数の基本的なデモを行った後、変数がどのように機能するかを見てみましょう。
Bash では通常、変数に対して以下に示す 2 つのアクションが実行されます。
- 値を設定する 変数の場合
- 値の読み取り それのための。
変数値はさまざまな方法で設定できますが、最も一般的な方法は値を直接設定することです。変数を読み取るには、スクリプト内の任意の場所にその名前 (先頭に $ 記号を付けます) を配置できます。
Bash は最初に、スクリプト内に存在するかのようにすべての変数名をチェックします。次に、スクリプトのすべての行を解釈します。すべての変数を識別した後、変数名を割り当てられた値に置き換えます。結局のところ、コード行を解釈/実行し、スクリプトのコード行ごとにこのプロセスを継続します。
注: Bash の両方の種類の変数 (説明しました) は、ターミナル上でも Bash スクリプト上でも機能します。簡単な例を通して、ターミナルと Bash での動作を見てみましょう。
例: ユーザー名を XYZ、現在作業している場所、Bash スクリプトに使用している Bash シェルのバージョンに基づいて呼び出します。
1. ターミナルでの作業
2. Bash シェルでの作業
以下の Bash_Var という名前のスクリプトを参照してください。
3でrdスクリプトの行 、変数を宣言しました USER_NAME ユーザー名を保存するには XYZ その値として。
最後の 2 行で を使用して、意図したメッセージを出力しました。 エコー 指示。
このメッセージには 2 つの変数と 1 つのコマンドがあります。それぞれの前にドル ($) 記号が付いています。
理解を深めるために、指定されたコードに従ってこのスクリプトを作成します。
#! /bin/bash #Bash Variables USER_NAME=XYZ echo Hey there! $USER_NAME is any user currently working on the directory $PWD with Bash Shell Version $BASH_VERSION.
次の画像に示すように、出力が表示されます。
出力:
ターミナルと Bash シェルの両方で変数を練習するための例がさらにいくつかあります。以下に従うことで、 ルールセット (前に説明しました) 次のように変数を練習してください。
A. コマンドラインターミナルの使用
1. 変数の設定
2. 変数の読み取りと参照
3. 無効な変数
4. 2 つの文字列変数を結合する
5. 文字列と変数の連結
注: 2 つの変数を結合する場合や、文字列と変数を連結する場合には一重引用符を使用しないでください。そのため、文字列を一重引用符で囲んで連結すると、以下の図に示すように、文字列の読み取りに失敗します。
B. Bash スクリプトの使用:
の例です 文字列変数を結合します。
出力:
コマンドライン引数
コマンド ライン引数は、コードに入力を渡すことでスクリプトをより動的にするために使用されます。これらの引数は、スクリプトの実行時に次の形式で渡します。
./script_name arg1 arg2 arg3.....
スクリプト名とすべての渡す引数の間にスペースを入れてはいけません。
コマンドライン引数の使い方は?
Bash シェルでは、次のデフォルトパラメータまたは特殊変数の参照とともに使用されます。
- 変数の読み取りまたは出力時には、変数名の前にドル ($) 記号を付けます。
- 変数に任意の値を設定する場合は、ドル記号 ($) を省略したままにしてください。
- 変数名は英数字またはアンダースコア (_) で記述できます。
- 変数名では大文字と小文字が区別されます。x と X は 2 つの異なる変数とみなされます。
- 変数名は、大文字または小文字、または両方を組み合わせて記述することができます。
- 変数は、実行時に Bash によって割り当てられた値に置き換えられるため、Bash スクリプトまたはコマンド ラインのどこにでも配置できます。コマンド実行前に置換を行うことで可能になりました。
- 変数名とその値の間の等号 (=) の両側に空白を入れないでください。以下にいくつかの例を示します 無効な変数 以下に示すように、間に空白 (ドット ... で示されます) があります。
var1=...変数1
var2...=変数2
var3...=...変数3 - 次のような単一文字値を持つ変数を定義するために、一重引用符または二重引用符を使用する必要はありません。 var1=変数 。複数の単語または文字列を単一項目として変数に入力するには、その変数内の内容を引用符で囲みます。
- 一重引用符 ('') は、すべての文字を扱うのに役立ちます。
- 二重引用符 ('') は置換に役立ちます。
- システム定義変数
- ユーザー定義変数
- 値を設定する 変数の場合
- 値の読み取り それのための。
変数はプログラミングの本質的な部分、またはプログラミング言語の精神であると言えます。変数は、文字、数値、英数字を使用してメモリの場所を指定します。これらは、コンピューター プログラムで参照および操作するために使用されます。
変数とは何ですか?
変数は、データまたは有用な情報を値として内部に保存するコンテナです。以下は変数の構文です。
Variable_name =value
変数は 2 つの単語を組み合わせた形式 (variable +able) であり、値を変更でき、複数回使用できることを意味します。
変数は、整数、浮動小数点、文字などのあらゆる種類のデータの一時ストレージとして知られています。変数名には次のものが含まれます。 アルファベット、数字、アンダースコア 、名前はアルファベットとアンダースコアのみで始めることができます。
注: 任意の数字で始まる変数名を定義することはできません。
Bash 変数とは何ですか?
適切な情報がなければ bash 変数を使用することはできません ( 構文、データ型、型、動作 ) それについては、Bash 変数の適切な概要を理解するために、この短いチュートリアルを最後まで見てみましょう。
まずは構文を知りましょう。
構文:
Variable_name=value
Bash 変数を定義するために設定されたルール:
データ型
正式なプログラミング言語では、変数宣言時に変数のデータ型を定義する必要があります。例えば:
int year=2012 char comp_name='jtp'
ただし、Bash の場合、変数宣言時に変数のデータ型を定義する必要はありません。 Bash 変数は次のとおりです。 型なし つまり、値を代入して変数名を入力するだけで、そのデータ型が自動的に考慮されます。
変数に数値を代入すると整数として機能し、変数に文字値を代入すると文字列として機能します。
year=2012 comp_name=jtp
echo コマンドを使用して、名前の前に $ 記号を割り当てて読み取ります。
エコー $年
$name をエコーする
Bash 変数の種類
シェルまたは UNIX システムには 2 種類の変数があります。
1. システム定義変数: これらは、LINUX オペレーティング システム自体によって作成および維持されるため、事前定義された変数です。標準的な規則では、通常は大文字、つまり UPPER_CASE で定義されます。したがって、大文字で定義されている変数がある場合は、それがシステム定義の変数である可能性が高くなります。
これらは、次に示すシステム定義変数です。
1. バッシュ はシェル名を表します。
例:
BASH=/usr/bin/bash
2.BASH_VERSION Bash が保持するシェルのバージョンを指定します。
例:
BASH_VERSION=4.2.46(2)
3. コラム 番号を指定してください。画面の列の数。
例:
COLUMNS=80
4. ホーム ユーザーのホームディレクトリを指定します。
例:
HOME=/home/jatpoint
5. ログ名 ロギングユーザー名を指定します。
例:
LOGNAME=javatpoint
6. OSタイプ OSの種類を示します。
例:
OSTYPE=linux-gnu
7.障害者 現在の作業ディレクトリを表します。
例:
PWD=/home/javatpoint
8. ユーザー名 現在ログインしているユーザーの名前を指定します。
例:
USERNAME=javatpoint
システム内のこれらの変数のリストを確認するには、次のコマンドを入力します。 設定、環境 、 そして printenv コマンドラインターミナルで次のように実行します。
1. セット 指示。
出力:
2. 環境 指示
出力:
3. printenv コマンドを入力する
出力:
Bash Shell を通じてこれらの変数を呼び出してみましょう。指定された手順は次のとおりです。
ステップ1: Bash_sdvar という名前のスクリプトを作成し、Bash コンソールに次のコードを入力します。
#! /bin/bash # Bash System-defined Variables echo $HOME # Home Directory echo $PWD # current working directory echo $BASH # Bash shell name echo $BASH_VERSION # Bash shell Version echo $LOGNAME # Name of the Login User echo $OSTYPE # Type of OS
ステップ2。 以下の Bash コンソールを見てください。
ステップ3。 スクリプトを保存して実行します。以下の図に示すように、出力が表示されます。
出力:
2. ユーザー定義変数: これらの変数はユーザーによって作成および維持されます。通常、これらのタイプの変数は LOWER_CASES で定義されます。これらの変数を小文字で記述するという厳密な規則はありません。大文字でも書くことができます。
これらの変数を定義する Bash スクリプトを作成しましょう。以下に示す手順に従ってください。
ステップ1。 という名前のスクリプトを作成します バッシュヤード そして、Bash コンソールに次のコードを入力します。
#! /bin/bash # User-Defined Variables name=Peter ROLL_NO=5245325 echo 'The student name is $name and his Roll number is $ROLL_NO.'
ステップ2。 Bash コンソールのコードを参照してください。
ステップ3。 スクリプトを保存して実行します。
出力:
Bash 変数の働き
変数の基本的なデモを行った後、変数がどのように機能するかを見てみましょう。
Bash では通常、変数に対して以下に示す 2 つのアクションが実行されます。
変数値はさまざまな方法で設定できますが、最も一般的な方法は値を直接設定することです。変数を読み取るには、スクリプト内の任意の場所にその名前 (先頭に $ 記号を付けます) を配置できます。
Bash は最初に、スクリプト内に存在するかのようにすべての変数名をチェックします。次に、スクリプトのすべての行を解釈します。すべての変数を識別した後、変数名を割り当てられた値に置き換えます。結局のところ、コード行を解釈/実行し、スクリプトのコード行ごとにこのプロセスを継続します。
注: Bash の両方の種類の変数 (説明しました) は、ターミナル上でも Bash スクリプト上でも機能します。簡単な例を通して、ターミナルと Bash での動作を見てみましょう。
例: ユーザー名を XYZ、現在作業している場所、Bash スクリプトに使用している Bash シェルのバージョンに基づいて呼び出します。
1. ターミナルでの作業
2. Bash シェルでの作業
以下の Bash_Var という名前のスクリプトを参照してください。
3でrdスクリプトの行 、変数を宣言しました USER_NAME ユーザー名を保存するには XYZ その値として。
最後の 2 行で を使用して、意図したメッセージを出力しました。 エコー 指示。
このメッセージには 2 つの変数と 1 つのコマンドがあります。それぞれの前にドル ($) 記号が付いています。
理解を深めるために、指定されたコードに従ってこのスクリプトを作成します。
#! /bin/bash #Bash Variables USER_NAME=XYZ echo Hey there! $USER_NAME is any user currently working on the directory $PWD with Bash Shell Version $BASH_VERSION.
次の画像に示すように、出力が表示されます。
出力:
ターミナルと Bash シェルの両方で変数を練習するための例がさらにいくつかあります。以下に従うことで、 ルールセット (前に説明しました) 次のように変数を練習してください。
A. コマンドラインターミナルの使用
1. 変数の設定
2. 変数の読み取りと参照
3. 無効な変数
4. 2 つの文字列変数を結合する
5. 文字列と変数の連結
注: 2 つの変数を結合する場合や、文字列と変数を連結する場合には一重引用符を使用しないでください。そのため、文字列を一重引用符で囲んで連結すると、以下の図に示すように、文字列の読み取りに失敗します。
B. Bash スクリプトの使用:
の例です 文字列変数を結合します。
出力:
コマンドライン引数
コマンド ライン引数は、コードに入力を渡すことでスクリプトをより動的にするために使用されます。これらの引数は、スクリプトの実行時に次の形式で渡します。
./script_name arg1 arg2 arg3.....
スクリプト名とすべての渡す引数の間にスペースを入れてはいけません。
コマンドライン引数の使い方は?
Bash シェルでは、次のデフォルトパラメータまたは特殊変数の参照とともに使用されます。
コマンドライン引数を渡すために使用する 2 つの方法を次に示します。
方法 1: 位置番号を使用する
これは、デフォルトのパラメーター ($1...$9) を使用して引数にアクセスする最初の方法です。以下の画像で説明しています。
出力:
方法 2: 配列を使用する。
これは、引数を配列として渡す 2 番目の方法です。このメソッドを適用するには、指定されたアルゴリズムに従ってください。
ステップ1: Bash スクリプトを作成します。
ステップ2: 任意の変数名を宣言し、その値を次のように割り当てます。 $a 次の形式で:
variable_name=('$@')
どこ $@ は、引数 (渡す) を配列として保存するために使用されるデフォルトの引数です。
ステップ 3: 次の形式で配列インデックスを定義して引数を表示します。
${variable_name[i]}
ステップ 4: スクリプトを保存して閉じます。
ステップ5: 引数を渡してスクリプトを実行します。
次のプログラムを参照してください。
プログラム:
#!/bin/bash args=('$@') echo ${args[0]} ${args[1]} ${args[2]} ${args[3]}
Bash コンソールの場合:
出力:
コマンド置換
Bash公式ドキュメントによると
コマンド置換を使用すると、コマンドの出力でコマンド自体を置き換えることができます。 Bash は、サブシェル環境でコマンドを実行し、コマンド置換を末尾の改行を削除したコマンドの標準出力に置き換えることによって展開を実行します。埋め込まれた改行は削除されませんが、単語の分割中に削除される可能性があります。
コマンド置換とは、Bash が実行する拡張を指します。 Bash コマンドの出力を取得し、(通常は) 変数に保存し、エコーで表示します。
コマンド置換 スクリプトと変数の割り当てに関してデータの柔軟性を提供します。単一のコマンドライン出力を持つのはシンプルで簡単です。場合によっては、出力が数行にまたがり、その後新たに末尾の行が削除され、出力の全内容が 1 行になります。
使用する構文を参照してください。
構文
変数内のコマンドの置換またはコマンド置換の古典的な形式は、以下に示すように逆引用符 (`...`) を使用することです。
variable_name=`command_name` variable_name=`command_name [option...] argument1 argument2...` variable_name=`/path/to/command`
ここで、コマンドを括弧 (ドル記号 ($) が前に付く) で囲むことによって、コマンド置換を実行します。ご覧ください:
variable_name=$(command_name) variable_name=$(command_name [option...] argument1 argument2...) variable_name=$(path/to/command)
それでは、説明に従って例を使用してコマンド置換を行ってみましょう。
この例では、単一のコマンド ls を変数に置き換えています。ターミナルを参照してください。
ライン1: コマンド置換を使用しない場合、出力は複数行に展開されます。
2行目と3行目: コマンド置換を使用すると、出力は 1 行で終了します (新たに末尾の行を削除することでスペースが節約されます)。
以下は、コマンド置換をテストするための Bash スクリプトです。
プログラム:
#! /bin/bash # command substitution lsResult=$(ls) echo 'My files are:' $lsResult
Bash コンソールを参照してください。
出力:
コマンドライン引数を渡すために使用する 2 つの方法を次に示します。
方法 1: 位置番号を使用する
これは、デフォルトのパラメーター (...) を使用して引数にアクセスする最初の方法です。以下の画像で説明しています。
出力:
方法 2: 配列を使用する。
これは、引数を配列として渡す 2 番目の方法です。このメソッドを適用するには、指定されたアルゴリズムに従ってください。
ステップ1: Bash スクリプトを作成します。
ステップ2: 任意の変数名を宣言し、その値を次のように割り当てます。 $a 次の形式で:
variable_name=('$@')
どこ $@ は、引数 (渡す) を配列として保存するために使用されるデフォルトの引数です。
ステップ 3: 次の形式で配列インデックスを定義して引数を表示します。
${variable_name[i]}
ステップ 4: スクリプトを保存して閉じます。
ステップ5: 引数を渡してスクリプトを実行します。
次のプログラムを参照してください。
プログラム:
#!/bin/bash args=('$@') echo ${args[0]} ${args[1]} ${args[2]} ${args[3]}
Bash コンソールの場合:
出力:
コマンド置換
Bash公式ドキュメントによると
コマンド置換を使用すると、コマンドの出力でコマンド自体を置き換えることができます。 Bash は、サブシェル環境でコマンドを実行し、コマンド置換を末尾の改行を削除したコマンドの標準出力に置き換えることによって展開を実行します。埋め込まれた改行は削除されませんが、単語の分割中に削除される可能性があります。
コマンド置換とは、Bash が実行する拡張を指します。 Bash コマンドの出力を取得し、(通常は) 変数に保存し、エコーで表示します。
コマンド置換 スクリプトと変数の割り当てに関してデータの柔軟性を提供します。単一のコマンドライン出力を持つのはシンプルで簡単です。場合によっては、出力が数行にまたがり、その後新たに末尾の行が削除され、出力の全内容が 1 行になります。
使用する構文を参照してください。
構文
変数内のコマンドの置換またはコマンド置換の古典的な形式は、以下に示すように逆引用符 (`...`) を使用することです。
variable_name=`command_name` variable_name=`command_name [option...] argument1 argument2...` variable_name=`/path/to/command`
ここで、コマンドを括弧 (ドル記号 ($) が前に付く) で囲むことによって、コマンド置換を実行します。ご覧ください:
variable_name=$(command_name) variable_name=$(command_name [option...] argument1 argument2...) variable_name=$(path/to/command)
それでは、説明に従って例を使用してコマンド置換を行ってみましょう。
この例では、単一のコマンド ls を変数に置き換えています。ターミナルを参照してください。
ライン1: コマンド置換を使用しない場合、出力は複数行に展開されます。
2行目と3行目: コマンド置換を使用すると、出力は 1 行で終了します (新たに末尾の行を削除することでスペースが節約されます)。
以下は、コマンド置換をテストするための Bash スクリプトです。
プログラム:
#! /bin/bash # command substitution lsResult=$(ls) echo 'My files are:' $lsResult
Bash コンソールを参照してください。
出力: