UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
$
Проверим ее:
$ cx which
$ which which
./which
$ which ed
/bin/ed
$ mv which /usr/you/bin
$ which which
/usr/you/bin/which
$
Первый оператор
case
1>&2
echo
exit
exit 2
exit 1
exit 0
exit
Что произойдет, если в вашем текущем каталоге есть программа под именем
test
test
$ echo 'echo hello' >test
$ cx test
$ which which
hello
./which
$
Вывод: требуется больший контроль. Можно запустить команду
which
test
test
test
which
sed
echo
PATH
/bin
/usr/bin
which
PATH
$ cat which
# which cmd: which cmd in PATH is executed, final version
opath=$PATH
PATH=/bin:/usr/bin
case $# in
0) echo 'Usage: which command' 1>&2; 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
$
Теперь команда
which
test
sed
echo
PATH
$ ls -l test
-rwxrwxrwx 1 you 11 Oct 1 06:55 test
$ which which
/usr/you/bin/which
$ which test
./test
$ rm test
$ which test
/bin/test
$
В языке
shell
||
&&
if
||
if
test -f имя_файла || echo имя_файла не существует
эквивалентно
if test ! -f имя_файла
then
echo имя файла не существует
fi
Операция
||
||
||
||
&&
Почему в команде
which
PATH
opath
Если в языке
shell
esac
case
fi
if
do
done