2012-03-14 11 views
12

bashスクリプト内のawkコマンドでbash変数に値を返すことは可能ですか?つまり、awkスクリプトがいくつかの算術演算を行う場合は、 bashスクリプトでアクセスできます。可能であれば、複数の戻り変数を区別する方法。ありがとう。AWK:シェルスクリプトへの戻り値

答えて

15

いいえexitを使用してエラーコードを返すことはできますが、通常はサブプロセスからシェル環境を変更することはできません。

はまた、当然のことながら、awkで所望のコンテンツを印刷しreadを使用してbashで変数にそれを置くことができます。

read a b c <<< $(echo "foo" | awk '{ print $1; print $1; print $1 }') 

$a$b$cは、すべての「foo」です。読み取りには、<<<$()の構文を使用する必要があります。任意の種類のパイプラインを使用すると、サブプロセスも作成され、パイプラインが実行されると環境変数readが失われます。

+0

どのようにですか?あなたは一例を挙げてください。ありがとう –

+0

@ ShuvoShams:私は1つを追加しました。 –

+0

@EduardoIvanec - 親プロセスの環境(変数)を変更することは非常に難しく、「不可能に近い」と宣言される可能性があります。 –