Читаем UNIX — универсальная среда программирования полностью

  old_time = stbuf.st_mtime;

  sleep(60);

  fstat(fd, stbuf);

 }

 if (argc == 2) { /* copy file */

  execlp("cat", "cat", argv[1], (char*)0);

  error("can't execute cat %s", argv[1]);

 } else { /* run process */

  execvp(argv[2], argv[2]);

  error("can't execute %s", argv[2]);

 }

 exit(0);

}

#include "error.c"

<p>3.8.62 <code>watchfor</code></p>

# watchfor: watch for someone to log in

PATH=/bin:/usr/bin

case $# in

0) echo 'Usage: watchfor person' 12; exit 1

esac

until who | egrep "$1"

do

 sleep 60

done

<p>3.8.63 <code>watchwho</code></p>

# watchwho: watch who logs in and out

PATH=/bin:/usr/bin

new=/tmp/wwho1.$$

old=/tmp/wwho2.$$

$old # create an empty file

while : # loop forever

do

 who $new

 diff $old $new

 mv $new $old

 sleep 60

done | awk '// { $1 = "in: "; print }

            // { $1 = "out: "; print }'

<p>3.8.64 <code>which1</code></p>

# which cmd: which cmd in PATH is executed, version 1

case $# in

0) echo 'Usage: which command' 12; exit 2

esac

for i in `echo $PATH | sed 's/^:/.:/

                            s/::/:.:/g

                            s/:$/:./

                            s/:/ /g'`

do

 if test -f $i/$1 # use test -x if you can

 then

  echo $i/$1

  exit 0 # found it

 fi

done

exit 1 # not found

<p>3.8.65 <code>which1.H</code></p>

# which cmd: which cmd in PATH is executed, version 1

case $# in

0) echo 'Usage: which command' 12; exit 2

esac

for i in `echo $PATH | sed 's/^:/.:/

                            s/::/:.:/g

                            s/:$/:./

                            s/:/ /g'`

do

 if test -f $i/$1 # use test -x if you can

 then

  echo $i/$1

  exit 0 # found it

 fi

done

exit 1 # not found

@@@ Fri Oct 14 14:21:11 EDT 1983 original version

<p>3.8.66 <code>which2</code></p>

# which cmd: which cmd in PATH is executed, final version

opath=$PATH PATH=/bin:/usr/bin

case $# in

0) echo 'Usage: which command' 12; exit 2

esac

for i in `echo $opath | sed 's/^:/.:/

                             s/::/:.:/g

                             s/:$/:./

                             s/:/ /g'`

do

 if test -f $i/$1 # this is /bin/test

 then # or /usr/bin/test only

  echo $i/$1

  exit 0 # found it

 fi

done

exit 1 # not found

<p>3.8.67 <code>wordfreq</code></p>

awk ' { for (i = 1; i = NF; i++) num[$i]++ }

END {for (word in num) print word, num[word] }

' $*

<p>3.8.68 <code>zap1</code></p>

# zap pattern: kill all processes matching pattern

# BUG in this version

PATH=/bin:/usr/bin

case $# in

0) echo 'Usage: zap pattern' 12; exit 1

esac

kill `pick \`ps -ag | grep "$*"\` | awk '{print $1}'`

<p>3.8.69 <code>zap2</code></p>

# zap pat: kill all processes matching pat

# final version

PATH=/bin:/usr/bin

IFS='

' # just a newline

case $1 in

"") echo 'Usage: zap [-2] pattern' 12; exit 1 ;;

-*) SIG=$1; shift

esac

echo ' PID TTY TIME CMD'

kill $SIG `pick \`ps -ag | egrep "$*"|` | awk '{print $1}'`

<p>3.8.70 <code>zap.c</code></p>

/* zap: interactive process killer */

#include stdio.h

#include signal.h

char *progname; /* program name for error message */

char *ps = "ps -ag"; /* system dependent */

main(argc, argv)

 int argc;

 char *argv[];

{

 FILE *fin, *popen;

 char buf[BUFSIZ];

 int pid;

Перейти на страницу:

Похожие книги

1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT