This implements a word to determine if a user exists. This is done by parsing the results of `finger`. ~~~ :pipe> (s-s) file:R unix:popen [ file:read-line ] [ unix:pclose ] bi ; {{ :command 'finger_%s_2>&1 s:format ; :parse ASCII:SPACE s:tokenize ; :login? #0 a:th fetch 'Login: s:eq? ; ---reveal--- :user:exists? (s-f) &Heap [ command pipe> parse login? ] v:preserve ; }} 'crc user:exists? 'fakeuser user:exists? 'root user:exists? ~~~ A second way is to parse the `/etc/passwd` file. ~~~ {{ :setup (s-fs) FALSE swap ': s:append s:keep ; :match? (fss-fsf) over s:begins-with? ; :found (fs-fs) drop-pair TRUE s:empty s:keep ; :check (fss-fs) match? [ found ] if ; :seek (fs-fs) '/etc/passwd [ check ] file:for-each-line ; ---reveal--- :user:exists? (s-f) &Heap [ setup seek drop ] v:preserve ; }} 'crc user:exists? 'fakeuser user:exists? 'root user:exists? ~~~