変数のシェルまたは割り当てでのawkを使用する方法[復刻版]

変数の代入やシェルのawkでの使用方法

http:// blog.jcix.top/2017-03-30/shell_awk_variables/

 

ライトシェルスクリプトのテキストを処理する際、多くの場合、シェルのawkコマンドを一致させるために使用されます。しかし、中括弧で二つの世界のようなルックスをawkはシェル。本論文では、AWKとシェル変数の変化を利用を達成するために、(著者が制限され、複雑な5月以降のサプリメント)を理解する唯一の最も簡単な方法を説明します。

我々はawk言語の機能、またはパッケージのようになるならば、あなたは外部変数を使用するか、変更したい、問題は、実際に出力の入力パラメータと戻り値です。使用シェル変数の場合、実際には、シェル変数AWKの引数かの問題として、シェルのawkの変数の割り当てのためには、awkは出力値のリターンとして見ることができます。

シェル変数はawkの使用

渡されたパラメータawkのオプションは-v [awk_var=$SHELL_VAR]、それが囲まれたメインのawkプログラムの前に「」を追加する必要があります。

1つのサンプルスクリプト:

 

 

出力:

 

 

シェルawkの変数の割り当てへ

 

単一の変数

今、シェル変数の割り当てにawkのために、それは、awkの出力値のリターンとして見ることができます。単一の変数の復帰のために、あなたはシェルのバッククォート構文を使用することができます。結果バッククォートの値は、 `コマンドは、変数に代入保存することができる、当然のコマンドもawkのこと。

サンプルスクリプト2:

 

 

出力:

 

 

複数の変数

複数の変数の代入のために、私たちは簡単にする必要が使用するためにevalコマンドを説明し、それがパラメータとしてシェルコマンドを実行するためにevalコマンドです、例えば:

サンプルスクリプト3:

 

 

出力:

 

 

しかし、「evalの」せずに上記のスクリプトでは、結果は同じで、違いは何ですか?個人的な理解は、各コマンドスクリプトの実装に遭遇必ずしも同じ状況ならば、我々は唯一のスクリプトで文字列を実行し、その後のevalコマンドを達成することができると組み合わせるrawコマンドのマイナーな費用を必要としています。

VAR2 = 321; VAR3 = 111 AWKプログラムの詳細、我々は「中間プログラム」などのコマンド文字列AWKを生成することができ、次いで、今問題となっている対応する多変数の割り当ては、実際には= 123 VAR1」類似を生成することですの「この文字列。

だから、ここが、それは、多変数の割り当てであるが、実際には  まだ言及した一方向出力変数以上使用していますが、これは、単一の変数は文字列変数である-シェルコマンドを含む文字列  。あなたは、例を参照してください〜それは良い一口ああだと思うかもしれません。

4サンプルスクリプト:

 

 

出力:

 

 

[何がbashで「evalの」コマンドである?] http://unix.stackexchange.com/questions/23111/what-is-the-eval-command-in-bash

[AWKコールSHELL、および変数はシェルに渡さ] http://smilejay.com/2014/01/awk-call-shell/

おすすめ

転載: www.cnblogs.com/jinanxiaolaohu/p/12490944.html