Библиотека knigago >> Компьютеры: Операционные системы >> Linux >> Командная строка Linux. Полное руководство


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 2984, книга: Мёдпром
автор: Катерина Швецова

Книга "Мёдпром" от Катерины Швецовой - это кладезь полезной и увлекательной информации для маленьких исследователей. Мне особенно понравилась глава про жизнь пчёл. Узнал много нового: про их социальную структуру, разделение обязанностей и невероятное трудолюбие. Интересно было прочитать про то, как они ориентируются в пространстве и как общаются друг с другом. А ещё впечатлила глава про мёд. Я никогда не думал, что его производят такие крошечные создания! Книга наглядно показывает,...

СЛУЧАЙНАЯ КНИГА

Звездный пес. Кир Булычев
- Звездный пес

Жанр: Детская фантастика

Год издания: 2007

Серия: Алиса Селезнева

СЛУЧАЙНАЯ КНИГА

Уильям Шоттс - Командная строка Linux. Полное руководство

Командная строка Linux. Полное руководство
Книга - Командная строка Linux. Полное руководство.  Уильям Шоттс  - прочитать полностью в библиотеке КнигаГо
Название:
Командная строка Linux. Полное руководство
Уильям Шоттс

Жанр:

Учебники и самоучители по компьютеру, Linux

Изадано в серии:

Для профессионалов

Издательство:

Питер

Год издания:

ISBN:

9785496023030

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Командная строка Linux. Полное руководство"

Уильям Шотте знакомит вас с истинной философией Linux. Вы уже знакомы с Linux, и настала пора нырнуть поглубже и познакомиться с возможнос тями командной строки. Командная строка всегда с вами, от первого знакомства до написания полноценных программ в Bash — самой популярной оболочке Linux. Познакомьтесь с основами навигации по файловой системе, настройки среды, последовательностями команд, поиском по шаблону и многим другим. Прочитав эту книгу, вы легко научитесь создавать и удалять файлы, каталоги и символьные ссылки; администрировать систему, включая сетевое оборудование, установку пакетов и управление процессами; редактировать файлы; писать скрипты для автоматизации общих или рутинных задач; выполнять любые работы с текстовыми файлами. Преодолев начальный страх перед оболочкой Linux, вы поймете, что командная строка — это естественный, логичный и простой способ общения с компьютером. И не забывайте протирать пыль с мышки. 12+

Читаем онлайн "Командная строка Linux. Полное руководство". [Страница - 154]

умолчанию, используемый для вывода трассировки. Он хранится
в переменной командной оболочки PS4 (prompt string 4 — строка приглашения 4).
Изменим значение этой переменной, чтобы сделать трассировочный вывод более
полезным. Ниже мы изменили эту переменную, включив в трассировочный вывод
текущий номер выполняемой строки в сценарии. Обратите внимание на необходимость использования одиночных кавычек — это предотвращает подстановку до
момента, когда строка приглашения не будет использоваться фактически:

416    Глава 30. Поиск и устранение ошибок
[me@linuxbox ~]$ export PS4='$LINENO + '
[me@linuxbox ~]$ trouble
5 + number=1
7 + '[' 1 = 1 ']'
8 + echo 'Number is equal to 1.'
Number is equal to 1.

Выполнить трассировку только выбранного фрагмента сценария можно с помощью команды set с параметром -x:
#!/bin/bash
# trouble: сценарий для демонстрации распространенных видов ошибок
number=1
set -x # Включить трассировку
if [ $number = 1 ]; then
echo "Number is equal to 1."
else
echo "Number is not equal to 1."
fi
set +x # Выключить трассировку

Здесь мы использовали команду set с параметром -x, чтобы включить трассировку, и с параметром +x, чтобы выключить ее. Этот прием используется для исследования сразу нескольких проблемных фрагментов в сценарии.

Исследование значений в процессе выполнения
Часто вместе с трассировкой полезно выводить содержимое переменных, чтобы
иметь более полное представление о действиях сценария. Обычно для этого используются дополнительные инструкции echo:
#!/bin/bash
# trouble: сценарий для демонстрации распространенных видов ошибок
number=1
echo "number=$number" # ОТЛАДКА
set -x # Включить трассировку
if [ $number = 1 ]; then
echo "Number is equal to 1."
else
echo "Number is not equal to 1."
fi
set +x # Выключить трассировку

Заключительное замечание   

417

В этом тривиальном примере мы просто вывели значение переменной number и отметили дополнительную строку комментарием, чтобы в будущем упростить ее поиск и удаление. Подобный прием особенно полезен при исследовании поведения
циклов и арифметических операций в сценариях.

Заключительное замечание
В этой главе мы рассмотрели несколько проблем, с которыми можно столкнуться
в процессе разработки сценариев. Конечно, таких проблем несоизмеримо больше.
Приемы, описанные здесь, помогут вам в поиске наиболее распространенных видов ошибок. Отладка — это искусство предотвращения ошибок (за счет постоянного тестирования в ходе разработки) и их поиска (путем эффективного использования приемов трассировки), которое дается только с опытом.

31

Управление потоком
выполнения:
ветвление
с помощью case

В этой главе мы продолжим знакомство с инструментами управления потоком
выполнения. В главе 28 мы сконструировали простое меню и реализовали логику обработки выбора его пунктов пользователем. Для этого использовалась серия
команд if, выясняющих, какой из возможных вариантов выбран. Такие конструкции часто можно увидеть в программах, причем так часто, что в некоторых языках
программирования (включая командную оболочку) был реализован механизм
управления потоком выполнения для случаев с множеством альтернативных вариантов.

case
Командная оболочка bash поддерживает составную команду выбора из нескольких вариантов, которая называется case. Она имеет следующий синтаксис:
case слово in
[шаблон [| шаблон]...) команды ;;]...
esac

Взгляните еще раз, как программа read-menu из главы 28 обрабатывает выбор
пользователя:
#!/bin/bash
# read-menu: программа вывода системной информации,
#
управляемая с помощью меню
clear
echo "
Please Select:

case   

1. Display System Information
2. Display Disk Space
3. Display Home Space Utilization
0. Quit
"
read -p "Enter selection [0-3] > "
if [[ $REPLY =~ ^[0-3]$ ]]; then
if [[ $REPLY == 0 ]]; then
echo "Program terminated."
exit
fi
if [[ $REPLY == 1 ]]; then
echo "Hostname: $HOSTNAME"
uptime
exit
fi
if [[ $REPLY == 2 ]]; then
df -h
exit
fi
if [[ $REPLY == 3 ]]; then
if [[ $(id -u) -eq 0 ]]; then
echo "Home Space Utilization (All Users)"
du -sh /home/*
else
echo "Home Space Utilization ($USER)"
du -sh $HOME
fi
exit
fi
else
echo "Invalid entry." >&2
exit 1
fi

С помощью case можно сделать логику выбора немного проще:
#!/bin/bash
# case-menu: программа вывода системной информации,
#
управляемая с помощью меню
clear
echo "
Please Select:
1. Display System Information
2. Display Disk Space
3. Display Home Space Utilization
0. Quit

419

420    Глава 31. Управление потоком выполнения: ветвление с помощью case
"
read -p "Enter selection [0-3] > "
case $REPLY in
0)
1)
2)
3)

*)
esac

echo "Program terminated."
exit
;;
echo --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.