If you log in from other hosts (Section 1.21) or from hosts running the X Window System (Section 24.20), the who am i[8] command will probably show a hostname and/or window information in parentheses:
[8]Also try "who mom likes" or maybe "who is responsible?" -- the who doesn't really care, as long as there are only two arguments. So, "who let the dogs out?", as you might expect, causes an error.
schampeo@fugazi:1002 $ who am i schampeo ttyp7 Jun 19 03:28 (fugazi:0.0)
(Long hostnames may be truncated. Also, note that some versions of who am i prepend the name of the local host to the username and don't include the remote hostname at all in their output. Check yours before you write this test.) The information in parentheses can help you configure your terminal based on where you've logged in from and/or which display you're using. To test it, add commands such as the following to your .profile file. (In C-type shells, use a switch statement in .login instead.)
case Section 35.10
case "`who am i | sed -n 's/.*(\(.*\))/\1/p'`" in
\(..\) \1 Section 34.11
*0.0) ...do commands for X display 0 ;; mac2*) ...do commands for the host mac2.foo.com ;; "") ...no output (probably not a remote login) ;; *) ...do commands for other situations ;; esac
That uses sed (Section 34.1) to give the text between the parentheses for that remote host to the case. This *0.0 case matches lines ending with 0.0; the mac2 case matches lines that start with mac2; an empty string means sed probably didn't find any parentheses; and the * case catches everything else.
--JP and SJC
Copyright © 2003 O'Reilly & Associates. All rights reserved.