Shellスクリプトは変数と変数の参照を定義します
一、変数の定義
注意:変数名と等号の間にスペースは使用できません.これはプログラミング言語とは異なります.
また、変数名の命名は、次のルールに従う必要があります.の最初の文字はアルファベット(a-z,A-Z)でなければなりません. の間にスペースはなく、下線()を使用できます. では句読点は使用できません. bashのキーワードは使用できません(helpコマンドで予約キーワードを表示できます).
定義された変数は、再定義できます.
注意:2回目の付与時に$variableName=「good」と書くことはできません.変数を使用するときはドル記号($)を追加します.
二、変数の引用
書式:$variableName
変数名の外側のカッコはオプションです.カッコは、次のように、解釈器が変数の境界を識別するのに役立ちます.
action変数にカッコを付けずにecho「I am good at$actionBook」と書くと、解釈器は$actionBookを変数として扱います(値は空です)
コード実行結果は私たちが望んでいる様子ではありません.すべての変数にカッコを付けることをお勧めします.これは良いプログラミング習慣です.
次に、2つのコマンドについて説明します. exportコマンド:システムは、新しいshellを作成するたびに、この変数のコピーを定義します.このプロセスを変数出力と呼ぶ. sourceコマンド:指定したShellプログラムファイルをShellに読み込ませ、ファイル内のすべての文 を順次実行する.
原理:スクリプトを実行するときは、サブシェル環境で実行され、スクリプトの実行が完了すると、サブシェルは自動的に終了します. 1 shellのシステム環境変数がサブshellにコピーされます(exportで定義された変数). 1つのshellのシステム環境変数は、shellまたはそのサブshellにのみ有効であり、shellの終了時に変数が消失します(親shellに戻ることはできません). exportで定義されていない変数は、そのshellにのみ有効であり、サブshellに対しても無効です.
通常、環境変数は開発ボードの/etc/profileファイルに入れます.
他のスクリプトで直接参照し、環境変数パスを追加 source/etc/profile
コマンドラインにexport log=4を直接入力して変更できます
三、記号$後の括弧の違い
(1)${a}変数aの値は、曖昧を起こさずに括弧を省略することができる.
(2)$(cmd)コマンド置換,`cmd`と同様の効果を得た結果,shellコマンドcmdの出力となり,一部のShellバージョンでは,$()形式のコマンド置換,例えばtcshがサポートされていない.
(3)$((expression))と`exprexpression`の効果は同じで、数学式expの数値を計算します.ここでexpはC言語の演算規則に合致すればよく、三目演算子と論理式さえ計算できます.
variableName="value"
注意:変数名と等号の間にスペースは使用できません.これはプログラミング言語とは異なります.
また、変数名の命名は、次のルールに従う必要があります.
定義された変数は、再定義できます.
variableName="good"
注意:2回目の付与時に$variableName=「good」と書くことはできません.変数を使用するときはドル記号($)を追加します.
二、変数の引用
書式:$variableName
変数名の外側のカッコはオプションです.カッコは、次のように、解釈器が変数の境界を識別するのに役立ちます.
for action in Reading Writing Changing
do
echo "I am good at ${action}Book"
done
action変数にカッコを付けずにecho「I am good at$actionBook」と書くと、解釈器は$actionBookを変数として扱います(値は空です)
コード実行結果は私たちが望んでいる様子ではありません.すべての変数にカッコを付けることをお勧めします.これは良いプログラミング習慣です.
次に、2つのコマンドについて説明します.
原理:
通常、環境変数は開発ボードの/etc/profileファイルに入れます.
export log=4
他のスクリプトで直接参照し、環境変数パスを追加 source/etc/profile
コマンドラインにexport log=4を直接入力して変更できます
三、記号$後の括弧の違い
(1)${a}変数aの値は、曖昧を起こさずに括弧を省略することができる.
(2)$(cmd)コマンド置換,`cmd`と同様の効果を得た結果,shellコマンドcmdの出力となり,一部のShellバージョンでは,$()形式のコマンド置換,例えばtcshがサポートされていない.
(3)$((expression))と`exprexpression`の効果は同じで、数学式expの数値を計算します.ここでexpはC言語の演算規則に合致すればよく、三目演算子と論理式さえ計算できます.