Уильям Шоттс - Командная строка Linux. Полное руководство
Название: | Командная строка Linux. Полное руководство | |
Автор: | Уильям Шоттс | |
Жанр: | Учебники и самоучители по компьютеру, Linux | |
Изадано в серии: | Для профессионалов | |
Издательство: | Питер | |
Год издания: | 2017 | |
ISBN: | 9785496023030 | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Командная строка Linux. Полное руководство"
Уильям Шотте знакомит вас с истинной философией Linux. Вы уже знакомы с Linux, и настала пора нырнуть поглубже и познакомиться с возможнос тями командной строки. Командная строка всегда с вами, от первого знакомства до написания полноценных программ в Bash — самой популярной оболочке Linux. Познакомьтесь с основами навигации по файловой системе, настройки среды, последовательностями команд, поиском по шаблону и многим другим. Прочитав эту книгу, вы легко научитесь создавать и удалять файлы, каталоги и символьные ссылки; администрировать систему, включая сетевое оборудование, установку пакетов и управление процессами; редактировать файлы; писать скрипты для автоматизации общих или рутинных задач; выполнять любые работы с текстовыми файлами. Преодолев начальный страх перед оболочкой Linux, вы поймете, что командная строка — это естественный, логичный и простой способ общения с компьютером. И не забывайте протирать пыль с мышки. 12+
Читаем онлайн "Командная строка Linux. Полное руководство". [Страница - 157]
428 Глава 32. Позиционные параметры
программы, то есть сценарий или функцию, упрощающие запуск этой программы.
Обертка принимает список непонятных для нее параметров командной строки
и просто передает его обернутой программе.
Для этой цели командная оболочка предоставляет два специальных параметра.
Они оба замещаются полным списком позиционных параметров, но имеют некоторые тонкие отличия. Описание этих параметров приводится в табл. 32.1.
Таблица 32.1. Специальные параметры $* и $@
Параметр
Описание
$*
Замещается списком позиционных параметров, начиная с $1. Если имя
параметра $* заключить в двойные кавычки, позиционные параметры
будут перечислены в списке через первый символ в переменной IFS
(по умолчанию пробел), а сам список будет размещен в одной строке
и заключен в кавычки
$@
Замещается списком позиционных параметров, начиная с $1. Если имя
параметра $@ заключить в двойные кавычки, механизм подстановки заменит его списком позиционных параметров, заключенных в кавычки по
отдельности
Следующий сценарий демонстрирует, как действуют эти специальные параметры:
#!/bin/bash
# posit-params3 : сценарий для демонстрации $* и $@
print_params
echo
echo
echo
echo
}
() {
"\$1
"\$2
"\$3
"\$4
=
=
=
=
pass_params () {
echo -e "\n"
echo -e "\n"
echo -e "\n"
echo -e "\n"
}
$1"
$2"
$3"
$4"
'$* :';
'"$*" :';
'$@ :';
'"$@" :';
print_params
print_params
print_params
print_params
$*
"$*"
$@
"$@"
pass_params "word" "words with spaces"
В этой довольно замысловатой программе мы создали два аргумента, word и words
with spaces, и передали их функции pass_params. Эта функция, в свою очередь,
передает их функции print_params, с применением каждого из четырех методов,
доступных для специальных параметров $* и $@. Вывод сценария показывает разницу между ними:
Более сложное приложение
429
[me@linuxbox ~]$ posit-param3
$* :
$1 = word
$2 = words
$3 = with
$4 = spaces
"$*" :
$1 = word words with spaces
$2 =
$3 =
$4 =
$@ :
$1 = word
$2 = words
$3 = with
$4 = spaces
"$@" :
$1 = word
$2 = words with spaces
$3 =
$4 =
В данном примере оба параметра, $* и $@, возвращают результат из четырех слов:
word, words, with и spaces. "$*" возвращает результат в виде одного слова, содержащего пробелы: word words with spaces. "$@" возвращает результат в виде двух
слов, второе из которых включает пробелы: word и words with spaces.
Это соответствует нашим фактическим намерениям. Этот пример показывает,
что, несмотря на наличие четырех разных способов получения списка позиционных параметров, в большинстве ситуаций предпочтительнее использовать
прием с "$@", потому что он сохраняет целостность каждого позиционного параметра.
Более сложное приложение
После долгой паузы мы продолжим работу над программой sys_info_page. Теперь
мы добавим в нее поддержку нескольких параметров командной строки:
Выходной файл. Мы добавим параметр, который позволит указать имя файла
для вывода результатов работы программы. Сделать это можно будет с помощью -f файл или --file файл.
Интерактивный режим. При передаче этого параметра программа будет предлагать пользователю ввести имя выходного файла и определять, существует ли
этот файл. Если файл существует, пользователю будет предложено подтвер-
430 Глава 32. Позиционные параметры
дить свое решение, прежде чем затереть существующий файл. Этот параметр
можно будет передать как -i или --interactive.
Справка. Передав параметр -h или --help, можно потребовать от программы
вывести сообщение с информацией о правилах пользования программой.
Далее приводится код, реализующий обработку командной строки:
usage () {
echo "$PROGNAME: usage: $PROGNAME [-f file | -i]"
return
}
# обработка параметров командной строки
interactive=
filename=
while [[ -n $1 ]]; do
case $1 in
-f | --file)
-i | --interactive)
-h | --help)
*)
done
esac
shift
shift
filename=$1
;;
interactive=1
;;
usage
exit
;;
usage >&2
exit 1
;;
Сначала мы добавили функцию usage для вывода сообщения, если программа вызывается с параметром --help или с неизвестным параметром.
Затем следует цикл обработки параметров. Цикл продолжается, пока позиционный параметр $1 не получит пустое значение. В конце цикла вызывается команда
shift, чтобы сдвинуть позиционные параметры и, в конечном итоге, гарантировать завершение цикла.
Внутри цикла инструкция case проверяет текущий позиционный параметр на --">
Книги схожие с «Командная строка Linux. Полное руководство» по жанру, серии, автору или названию:
Дональд Мартин, Стивен Прата, Митчел Уэйт - Язык Си - руководство для начинающих Жанр: C, C++, C# Год издания: 1988 |
Оби Фернандес - Путь Rails. Подробное руководство по созданию приложений в среде Ruby on Rails Жанр: Учебники и самоучители по компьютеру Год издания: 2009 |
Никлаус Вирт, Кэтлин Йенсен - Паскаль. Руководство для пользователя и описание языка Жанр: Pascal, Delphi, Lazarus и т.п. Год издания: 1982 |
Кристофер Негус, Франсуа Каэн - Ubuntu и Debian Linux для продвинутых: более 1000 неэаменимых команд Жанр: Linux Год издания: 2011 Серия: Для профессионалов |
Другие книги из серии «Для профессионалов»:
Джош Лоспинозо - C++ для профи Жанр: C, C++, C# Год издания: 2021 Серия: Для профессионалов |
Билл Филлипс, Кристин Марсикано, Крис Стюарт и др. - Android. Программирование для профессионалов Жанр: Android Год издания: 2021 Серия: Для профессионалов |
Гаурав Арораа, Джеффри Чилберто - Паттерны проектирования для C# и платформы .NET Core Жанр: C, C++, C# Год издания: 2021 Серия: Для профессионалов |
Уильям Шоттс - Командная строка Linux. Полное руководство Жанр: Linux Год издания: 2017 Серия: Для профессионалов |