私はUNIXを初めて使用し、以下のawkコマンドを理解しようとしています。
AWK=/bin/awk
RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}'`
echo $RUID
このコマンドは、ログインしているユーザー名を出力していますが、このコマンドを使用してユーザー名を抽出する方法を示しています。
多分あなたはこれを試すことができます:
whoami
あなたが本当にそれをやりたいのならawk
:
$ id |awk -F'[)(]' '{print $2}'
kent
編集 (コメント用)
もちろん、現在のログインユーザー名/IDを取得する方法は他にもあります。
ユーザー名を取得するには
kent$ id -un
kent
kent$ echo $USER
kent
kent$ echo $USERNAME
kent
UIDのみを取得するには
kent$ echo $UID
1000
kent$ id -u
1000
コマンドはパラメーターを使用して、コマンドからの出力を特定の文字(ここでは最初と2番目)で-F
分割します。配管に精通しているかどうかわかりませんか?id
(
)
次にを使用print $2
すると、2番目の部分、つまり最初に発生した後から(
次の発生までの部分が印刷されます。コマンドを手動で呼び出すと、これがどのように機能するかがわかります。
/usr/bin/id| $AWK -F\( '{print $2}'
これはを返しますusername) gid=1000
。
次に、での最初の実行でawk
得られた文字列を分割し、最初のの前にパーツを印刷するために再度呼び出されます。awk
)
)
ただし、同じことは、を呼び出す/usr/bin/id -un
か、さらに簡単にすることで実現できますwhoami
。
また/usr/bin/id
、パラメーターを指定せずにコマンドを実行して、awk
ここで解析している元の出力を確認してください。