Shellスクリプトは変数と変数の参照を定義します

1724 ワード

一、変数の定義
variableName="value"

注意:変数名と等号の間にスペースは使用できません.これはプログラミング言語とは異なります.
また、変数名の命名は、次のルールに従う必要があります.
  • の最初の文字はアルファベット(a-z,A-Z)でなければなりません.
  • の間にスペースはなく、下線()を使用できます.
  • では句読点は使用できません.
  • bashのキーワードは使用できません(helpコマンドで予約キーワードを表示できます).

  • 定義された変数は、再定義できます.
    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つのコマンドについて説明します.
  • exportコマンド:システムは、新しいshellを作成するたびに、この変数のコピーを定義します.このプロセスを変数出力と呼ぶ.
  • sourceコマンド:指定したShellプログラムファイルをShellに読み込ませ、ファイル内のすべての文
  • を順次実行する.
    原理:
  • スクリプトを実行するときは、サブシェル環境で実行され、スクリプトの実行が完了すると、サブシェルは自動的に終了します.
  • 1 shellのシステム環境変数がサブshellにコピーされます(exportで定義された変数).
  • 1つのshellのシステム環境変数は、shellまたはそのサブshellにのみ有効であり、shellの終了時に変数が消失します(親shellに戻ることはできません).
  • exportで定義されていない変数は、そのshellにのみ有効であり、サブshellに対しても無効です.

  • 通常、環境変数は開発ボードの/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言語の演算規則に合致すればよく、三目演算子と論理式さえ計算できます.