source: vendor/gawk/3.1.5/awklib/eg/prog/id.awk@ 3076

Last change on this file since 3076 was 3076, checked in by bird, 19 years ago

gawk 3.1.5

File size: 1.4 KB
Line 
1# id.awk --- implement id in awk
2#
3# Requires user and group library functions
4#
5# Arnold Robbins, [email protected], Public Domain
6# May 1993
7# Revised February 1996
8
9# output is:
10# uid=12(foo) euid=34(bar) gid=3(baz) \
11# egid=5(blat) groups=9(nine),2(two),1(one)
12
13BEGIN \
14{
15 uid = PROCINFO["uid"]
16 euid = PROCINFO["euid"]
17 gid = PROCINFO["gid"]
18 egid = PROCINFO["egid"]
19
20 printf("uid=%d", uid)
21 pw = getpwuid(uid)
22 if (pw != "") {
23 split(pw, a, ":")
24 printf("(%s)", a[1])
25 }
26
27 if (euid != uid) {
28 printf(" euid=%d", euid)
29 pw = getpwuid(euid)
30 if (pw != "") {
31 split(pw, a, ":")
32 printf("(%s)", a[1])
33 }
34 }
35
36 printf(" gid=%d", gid)
37 pw = getgrgid(gid)
38 if (pw != "") {
39 split(pw, a, ":")
40 printf("(%s)", a[1])
41 }
42
43 if (egid != gid) {
44 printf(" egid=%d", egid)
45 pw = getgrgid(egid)
46 if (pw != "") {
47 split(pw, a, ":")
48 printf("(%s)", a[1])
49 }
50 }
51
52 for (i = 1; ("group" i) in PROCINFO; i++) {
53 if (i == 1)
54 printf(" groups=")
55 group = PROCINFO["group" i]
56 printf("%d", group)
57 pw = getgrgid(group)
58 if (pw != "") {
59 split(pw, a, ":")
60 printf("(%s)", a[1])
61 }
62 if (("group" (i+1)) in PROCINFO)
63 printf(",")
64 }
65
66 print ""
67}
Note: See TracBrowser for help on using the repository browser.