ホームページ > php教程 > PHP开发 > awk で使用されるシェル コマンド - 簡単なメモ

awk で使用されるシェル コマンド - 簡単なメモ

高洛峰
リリース: 2016-12-15 10:45:56
オリジナル
1266 人が閲覧しました

awk で使用されるシェル コマンドには 2 つの方法があります:
1 つ。 system() を使用します
2. print cmd | "/bin/bash" を使用します
http://www.gnu.org/software/gawk/manual/gawk.html#I_002fO-Functions

1 つ。 system() の使用
awk プログラムでは、system() 関数を使用してシェルコマンドを呼び出すことができます

例: awk 'BEGIN{system("echo abc")}' file

echo abc は次のように使用されます「コマンドライン」はシェルによって実行されるため、次の結果が得られます:



root@ubuntu:~# awk 'BEGIN{system("echo abc")}'
abc
root@ubuntu:~ #


root@ ubuntu:~# awk 'BEGIN{v1="echo";v2="abc";system(v1" "v2)}'
abc
root@ubuntu:~#


root@ubuntu :~# awk 'BEGIN {v1="echo";v2="abc";system(v1 v2)}'
/bin/sh: echoabc: コマンドが見つかりません
root@ubuntu:~#


root@ubuntu :~# awk 'BEGIN {v1=echo;v2=abc;system(v1" "v2)}'
root@ubuntu:~#

上記の例から、awk が system を呼び出す方法を簡単に分析してみましょう:
If system( ) 括弧 内部のパラメーターが二重引用符で囲まれていない場合、awk はそれが変数であると判断し、それらを awk 変数の定数で置き換えてからシェルに返します

system() 内のパラメーター括弧が追加されます。二重引用符がある場合、awk は引用符内の内容をシェルの「コマンドライン」



2 としてシェルに直接返します。 print cmd を使用します | "/bin/bash"
root@ubuntu:~# awk 'BEGIN{print "echo","abc" "/bin/bash"}'
abc
root@ubuntu:~#


root@ubuntu:~# awk 'BEGIN{print "echo","abc",";","echo","123" "/bin/bash"}'
abc
123
root@ubuntu:~#


3つ。概要
system() を使用するか、print cmd | "/bin/bash" を使用するか
awk は新しいシェルを開き、対応する cmdline パラメーターをシェルに送り返すため、現在のシェル変数と新しく開かれたシェル変数に注意してください

1.1
root@ubuntu:~# abc=12345567890
root@ubuntu:~# awk 'BEGIN{system("echo $abc")}'

root@ubuntu:~#


1.2
root@ubuntu: ~ # export abc=12345567890
root@ubuntu:~# awk 'BEGIN{system("echo $abc")}'
12345567890
root@ubuntu:~#

2.1
root@ubuntu:~# abc=1234567890
root @ubuntu:~# awk 'BEGIN{print "echo","$abc"| "/bin/bash"}'

root@ubuntu:~#


2.2
root@ubuntu:~# export abc= 1234567890
root@ubuntu:~# awk 'BEGIN{print "echo","$abc"| "/bin/bash"}'
1234567890
root@ubuntu:~#


上記の例では、エクスポートなし、これらの変数は現在のシェル変数にのみ存在するため、エコーできません
エクスポートされたものは環境変数なので、awk が新しいシェルを呼び出すときにエコーできます


その他 awk シェルで使用されます。コマンド - 簡単なメモ 関連記事については、PHP 中国語 Web サイトに注目してください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート