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


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

# 842, книга: Земля призраков
автор: Ник Харрис

"Земля призраков" Ника Харриса - это захватывающая героическая фэнтезийная история, которая увлечет вас с самой первой страницы. Книга погружает вас в захватывающий мир, полный опасных существ, секретных культов и древнего зла. Главный герой, Эйдан, - воин с загадочным прошлым, который отправляется в путешествие, чтобы спасти своего друга. Его сопровождает группа союзников, каждый из которых обладает уникальными способностями и мотивами. Вместе они отправляются в опасное путешествие,...

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

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

Жанр:

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

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

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

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

Питер

Год издания:

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 проверяет текущий позиционный параметр на --">

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


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

Другие книги из серии «Для профессионалов»:

C++ для профи. Джош Лоспинозо
- C++ для профи

Жанр: C, C++, C#

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

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

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

Жанр: Linux

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

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