русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Встроенные команды (SHELL BUILTINS)


Дата добавления: 2014-11-27; просмотров: 940; Нарушение авторских прав


Команда ":" осуществляет анализ командной строки, но не выполняет ее. Всегда завершается успешно. Конструкция:

#!/bin/bash

: $[a=2*2]

echo "a=$a"

выведет:

a=4.

Значение переменной $a было присвоено в результате "побочного эффекта" анализа, выполненного командой ":".

Команда source или "." выполняет команды из указанного файла в текущем BASH, без запуска нового, как если бы содержимое файла набиралось на клавиатуре. Это позволяет, в отличие от выполнения скрипта, запомнить изменения в environment, определения функций и прозвищ. Используя эту команду, в программу можно включать "библиотечные" функции, определенные в других файлах.

Команда enable запрещает (-n) или снова разрешает применение встроенной команды. При запрете вместо встроенной команды ищется файл, если его нет - ошибка.

Команда exec. Если имеет аргумент, заменяет текущий процесс (BASH) на выполняемую команду, и к BASH возврата уже не происходит:

PerlProgram $scriptname && exec perl $scriptname.

Если аргумент не указан, но указаны символы перенаправления, exec устанавливает эти перенаправления, и выполнение текущего скрипта продолжается. Подробнее см. 2.3.5.

Таким образом достигается "динамическое" перенаправление:

echo Эта строка выводится на экран

exec >file.txt

echo А эта строка в файл

echo И эта в файл

Более того, можно открывать для ввода или вывода новые дескрипторы:

# создать файл-пример для последующего чтения

cat << EOF >user.rsp

29.06.77

30.01.85

EOF

exec 3>file.log

exec 4<user.rsp

echo Вводим дату через дескриптор 4

read d <&4

echo Дата получена и будет записана через дескриптор 3

echo $d >&3

Команда getoptsимеет формат:

getopts названия-опций переменная [альтернативные-аргументы].



Действует аналогично Си-функции getopt . Названия опций состоят из букв, соответствующих опциям. Если опция требует аргумент, после буквы ставится двоеточие.

Понимает "-" и дальше опции строку не рассматривает. Не понимает длинные опции (-опция).

! Если есть альтернативные аргументы, то анализируют их, а не $1-$n.

Если опция имеет аргумент, он помещается в OPTARG.

OPTIND сначала равен 1, затем getopts его увеличивает. Если надо запустить getopts снова, надо снова присвоить единицу.

После первого неудачного запуска getopts ($? не равен 0) $OPTIND равен номеру первого аргумента, не являющегося опцией, если такой есть ($OPTIND <= $#). Чтобы обработать этот и последующие аргументы, нельзя писать ${$OPTIND}, поскольку номер параметра должен быть константой. Вместо этого нужно сделать:

shift $[$OPTIND-1]

и обращаться к $1 и т. д.

Если ошибочная опция, в переменной присваивается "?", и выдается сообщение об ошибке. Чтобы запретить вывод сообщений, надо или OPTERR=0 (по умолчанию 1), или первый символ в названиях опций ":". Пример:

while getopts "qhe:v" arg

do

echo "Opt: $arg ${OPTARG:+($OPTARG)}"

case $arg in

q) quiet=1;; # установить quiet mode

h) echo Using: $0 [-q] [-h] [-e scriptfile] FILES...;

exit;;

e) scriptfile=OPTARG;; # задать файл с программой

esac

done

shift $[$OPTIND-1]

while [ -n "$1" ]

do

echo Processing file $1...

# разные действия...

shift

done

 

Команда hash показывает таблицу запомненных расположений команд. Можно стереть (-r), вопрос только в том, зачем то и другое.

Команды pushd, popd, dirs.

Команда dirs выводит стек запомненных директорий.

Команда popd удаляет или последнюю запомненную, или такую-то по счету сверху стека (+0..n) или снизу (-0..n).

Команда type похожа на команду which. Дает информацию о том, как была бы интерпретирована команда, будь она набрана в командной строке: Полное имя файла или сообщение типа 'shell builtin' или 'aliased to...'. Можно задать только тип (-t): file, builtin, alias, keyword. Если вывести все альтернативы (-a), например:

type -a ls,

вернет: "/bin/ls и ls is aliased to `gnuls --color=tty'".

Команда ulimitпоказывает или устанавливает ограничения на что-либо. Можно показать все ограничения (-a).

Команда umaskпоказывает атрибуты, с которыми создаются файлы данного пользователя. Без параметров показывает текущие в виде числа или букв (-S).

Команды aliasиunaliasсоздают и удаляют прозвища.



<== предыдущая лекция | следующая лекция ==>
Environment и атрибуты BASH | Переменные


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.064 сек.