Вот сценарий жемчуга, который открывает файлы (данный как параметры командной строки) в UTF-16 (порядок байтов, обнаруженный через BOM), и считает строки.
#! /usr/bin/env perl
use strict;
use warnings;
while (my $file = shift @ARGV) {
my $fh;
if (!open($fh, '<:encoding(UTF-16)', $file)) {
print STDERR "Failed to open [$file]: $!\n";
next;
}
my $count = 0;
$count++ while (<$fh>);
print "$file: $count\n";
close $fh;
}
(Умирает, если BOM не понят.)
Можно использовать ps -o ruser=
или ps -o uid=
:
$ ps -p 930 -o ruser=
root
$ ps -C cron -o ruser=
root
$ [[ $(ps -C cron -o uid=) -eq 0 ]]; echo $?
0
- p соответствует pid и-C названием команды. PS OS X не поддерживает-C, но можно использовать pgrep:
$ ps -p $(pgrep -x cron) -o ruser=
root