Linux shellプログラミング(二):shell構文


shell構文
shell実行コマンド操作
shellが入力を読み出すと、一連の操作が実行されます.注釈を表す先頭を入力すると、shellは注釈記号('#')とその行の残りの部分を無視します.
shellコマンドの読み取りと実行には、次の操作があります.
  • は、パラメータとしての文字列から「-c」呼び出しオプション(Bash呼び出し)、またはユーザの端末から入力をファイル(Shellスクリプト)から読み出す.
  • 入力を単語とオペレータに分割し、記述された参照規則を遵守する.これらのタグは「メタ文字」で区切られています.エイリアス拡張を実行します.
  • はトークンを単純な複合コマンドとして解析する.
  • は、様々なshell拡張を実行し、拡張トークンをファイル名、コマンド、およびパラメータリストに分解する.
  • 必要なリダイレクトを実行し、パラメータリストからリダイレクトオペレータとそのオペランドを削除します.
  • 実行コマンド
  • は、オプションとして、コマンドの完了を待機し、その終了状態を収集する.

  • 参照(Quoting)
    参照は、shellに対する特定の文字または単語の特殊な意味を除去するために使用されます.リファレンスは、特殊文字の特殊な処理を無効にし、予約文字が認識されないようにし、パラメータの拡張を防止するために使用できます.各shellメタ文字はshellにとって特別な意味を持ち、それを参照して自分を表す必要があります.
  • には、エスケープ文字、単一引用符、および二重引用符の3つの参照メカニズムがあります.

  • エスケープ文字
    参照されていない反スラッシュ""は、Bashエスケープ文字です.次の文字の文字値を保持します.用途:
  • は、通常の文字を特殊な用途に変換し、後退キー、リターンキーなど、直接表示できない文字を表すために使用されます.
  • は、特殊な意味の文字を元の意味に変換するために使用される.

  • 一重引用符
    単一引用符は、通常、文字列を「先頭」で終わり、2つの単一引用符の間に格納します.単一引用符は、単一引用符で閉じた式には表示されません.たとえば、a='I'm so hot';システムがエラーを報告します.例えば、a='i'm so hot;前の文はエラーを報告しません.
    二重引用符
    単一引用符と同様に、二重引用符は文字列を格納するためにも使用できます.二重引用符は、表現試行中に存在するためにエスケープする必要があります.単一引用符は、二重引用符内に「$」記号が表示されると、shellは変数または式を解釈しようとします.$からその後ろの単語を変数名とします.単一引用符では変数や式は説明されません
    コメント
    shellは「#」を注釈記号とする.shellファイル(shellスクリプト)でよく使用されます.ファイルの行に記号「#」が表示されると、「#」の後ろは行の最後まで無視されます.
    コマンドの構文
    shellでは、コマンド+パラメータ、コマンドとパラメータはスペースで区切られ、パラメータとパラメータもスペースで区切られます.次のようになります.
    echo 1 2 3 4 5
    コマンドヘルプ情報の表示
  • パラメータ-h|--helpを使用する.shellでは、ほとんどのコマンドがサポートされています.コマンド--help|-hは、コマンドの使用説明
  • を表示します.
  • manコマンドを使用:manコマンドは、コマンドのmanマニュアルの詳細を表示できます.
  • whatis:whatisを使用してコマンドの説明を表示する
  • shell組み込みコマンド(builtin)の使用方法の表示
    helpコマンドを使用すると、ビルドコマンドの簡単な要約を表示するための組み込みコマンドの使用方法を表示できます.モードが指定されている場合は、すべてのコマンドマッチングモードで詳細なヘルプを提供します.そうしないと、ヘルプトピックのリストが印刷されます.
    次のようになります.
    [root@localhost ~]# help true
    true: true
        Return a successful result.
        Exit Status:
        Always succeeds.
    [root@localhost ~]# 
    

    infoコマンドを使用して情報フォーマットドキュメントを表示する
    infoコマンドを使用すると、bash、gawk、sed、grepなどのコマンドの詳細ドキュメントを表示できます.infoコマンドを使用して、詳細な使用ドキュメントを表示できます.