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


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

# 878, книга: Заложница
автор: Барбара Картленд

Исторические любовные романы "Заложница" рассказывает историю леди Элизабет Стэнхоуп, молодой женщины, похищенной турками при нападении на ее корабль. Отведенная в качестве наложницы в гарем, она встречает лорда Ричарда Блэкуолла, английского аристократа, захваченного в плен во время того же нападения. Несмотря на опасность и неодобрение со стороны своего поработителя, Элизабет и Ричард влюбляются. Вместе они планируют побег, сталкиваясь с многочисленными препятствиями по...

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

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

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

Жанр:

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

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

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

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

Питер

Год издания:

ISBN:

9785496023030

Отзывы:

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

Рейтинг:

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

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

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

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

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

скобки; например, ${10}, ${55}, ${211} и т. д.

Определение числа аргументов
Командная оболочка поддерживает также переменную $#, хранящую число аргументов командной строки:
#!/bin/bash
# posit-param: сценарий для просмотра параметров командной строки
echo "
Number of arguments: $#

Доступ к командной строке   

\$0
\$1
\$2
\$3
\$4
\$5
\$6
\$7
\$8
\$9
"

=
=
=
=
=
=
=
=
=
=

425

$0
$1
$2
$3
$4
$5
$6
$7
$8
$9

Результат:
[me@linuxbox ~]$ posit-param a b c d
Number of arguments: 4
$0 = /home/me/bin/posit-param
$1 = a
$2 = b
$3 = c
$4 = d
$5 =
$6 =
$7 =
$8 =
$9 =

shift — доступ к множеству аргументов
Но как быть, если программе передается большое число аргументов, как в следующем примере:
[me@linuxbox ~]$ posit-param *
Number of arguments: 82
$0 = /home/me/bin/posit-param
$1 = addresses.ldif
$2 = bin
$3 = bookmarks.html
$4 = debian-500-i386-netinst.iso
$5 = debian-500-i386-netinst.jigdo
$6 = debian-500-i386-netinst.template
$7 = debian-cd_info.tar.gz
$8 = Desktop
$9 = dirlist-bin.txt

В системе, где выполнялся этот пример, механизм подстановки развернул символ * в 82 аргумента. Как обработать такое количество? Командная оболочка
предусматривает решение и для подобных случаев, правда, следует отметить, что
изяществом оно не отличается. Команда shift выполняет «сдвиг» параметров

426    Глава 32. Позиционные параметры
к началу списка. Фактически, используя shift, можно обойтись единственной
переменной-параметром (помимо $0, которая никогда не изменяется).
#!/bin/bash
# posit-param2: сценарий вывода всех аргументов
count=1
while [[ $# -gt 0 ]]; do
echo "Argument $count = $1"
count=$((count + 1))
shift
done

Каждый раз, когда выполняется команда shift, значение $2 перемещается в $1, значение $3 перемещается в $2 и т. д. Значение $# при этом уменьшается на 1.
В программе posit-param2 мы создали цикл, проверяющий число оставшихся аргументов и продолжающийся до тех пор, пока оно не уменьшится до нуля. Цикл
выводит текущий аргумент, в каждой итерации увеличивает счетчик обработанных аргументов count и, наконец, выполняет shift, чтобы загрузить в $1 следующий аргумент. Вот как работает эта программа:
[me@linuxbox
Argument 1 =
Argument 2 =
Argument 3 =
Argument 4 =

~]$ posit-param2 a b c d
a
b
c
d

Простые приложения
Даже без команды shift можно писать полезные приложения, использующие позиционные параметры. Например, ниже приводится простая программа получения информации о файле:
#!/bin/bash
# file_info: простая программа получения информации о файле
PROGNAME=$(basename $0)
if [[ -e $1 ]]; then
echo -e "\nFile Type:"
file $1
echo -e "\nFile Status:"
stat $1
else
echo "$PROGNAME: usage: $PROGNAME file" >&2
exit 1
fi

Обработка позиционных параметров скопом   

427

Эта программа выводит тип указанного файла (определяется с помощью команды file) и его состояние (командой stat). Интересной особенностью программы
является переменная PROGNAME. Ей присваивается результат выполнения команды
basename $0. Команда basename удаляет начальную часть из пути к файлу, оставляя
только базовое имя. В данном примере basename удалит начальную часть из параметра $0, хранящего полный путь к данной программе. Такой результат удобно
использовать для конструирования сообщений, например, о правилах использования программы. При подобном подходе можно переименовать сценарий, и при
выводе сообщений новое имя программы будет использоваться автоматически.

Использование позиционных параметров в функциях
Позиционные параметры используются для передачи аргументов не только в сценарии, но и в функции командной оболочки. Для демонстрации преобразуем сценарий file_info в функцию:
file_info () {
# file_info: функция для вывода информации о файле

}

if [[ -e $1 ]]; then
echo -e "\nFile Type:"
file $1
echo -e "\nFile Status:"
stat $1
else
echo "$FUNCNAME: usage: $FUNCNAME file" >&2
return 1
fi

Теперь, если сценарий, включающий функцию file_info, вызовет ее с именем файла в аргументе, аргумент будет передан в функцию.
Благодаря этому мы получаем возможность написать множество полезных функций для использования не только в наших сценариях, но и в файле .bashrc.
Обратите внимание, что в этом примере вместо переменной PROGNAME используется переменная командной оболочки FUNCNAME. Оболочка автоматически присваивает значение этой переменной в момент вызова функции. Отметьте также, что $0
всегда содержит полный путь к первому элементу командной строки (то есть имя
программы), а не имя функции, как можно было бы ожидать.

Обработка позиционных параметров скопом
Иногда бывает необходимо выполнить операцию сразу со всеми позиционными
параметрами. Например, --">

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


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

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

Библия Linux. Кристофер Негус
- Библия Linux

Жанр: Linux

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

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

Красивый C++. Дж. Гай Дэвидсон
- Красивый C++

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

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

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