UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
esac
left="$1"; right="$2"; shift; shift
for i do
overwrite $i sed "[email protected][email protected][email protected]" $i
done
$ cat footnote
UNIX is not an acronym
$ replace UNIX Unix footnote
$ cat footnote
Unix is not an acronym
$
(Вспомните: если список в цикле
for
$*
@
/
@
replace
PATH
/bin:/usr/bin
$HOME/bin
overwrite
/usr/bin
replace
overwrite
/usr/bin
$HOME/bin
PATH
replace
overwrite
/usr/bin
Почему команда
overwrite
trap
trap "echo exiting; exit 1" 0 2
sleep 10
Добавьте флаг
-v
replace
/dev/tty
Подсказка:
s/$left/$right/g $vflag
Увеличьте надежность команды
replace
Можно ли использовать
replace
i
index
Достаточно ли команда
replace
/usr/bin
sed
(Усложненное.) Команда
$ overwrite файл 'who | sort'
не выполняется. Объясните причину этого и исправьте ее. Подсказка: посмотрите
eval
sh(1)
5.6 Команда
zap
Команда
kill
ps
kill
zap
pick
Кратко напомним вам о команде
pick
y
pick
pick
$ cat zap
# zap pattern: kill all processes matching pattern
# BUG in this version
PATH=/bin:/usr/bin
case $# in
0) echo 'Usage: zap pattern' 1>&2; exit 1
esac
kill `pick `ps -ag | grep "$*"` | awk '{print $1}'`
Обратите внимание на вложенные знаки слабого ударения, защищенные символами обратной дробной черты,
awk
ps
pick
$ sleep 1000 &
2216
$ ps -ag
PID TTY TIME CMD
...
2216 0 0:00 sleep 1000
...
$ zap sleep
2216?
0? q
$
Проблема состоит в том, что выходные данные команды
ps
pick