Глава 11. Внутренние команды
Глава 11. Внутренние команды
Внутренняя команда -- это команда, которая встроена непосредственно в Bash. Команды делаются встроенными либо из соображений производительности -- встроенные команды исполняются быстрее, чем внешние, которые, как правило, запускаются в дочернем процессе, либо из-за необходимости прямого доступа к внутренним структурам командного интерпретатора.
Действие, когда какая либо команда или сама командная оболочка инициирует (порождает) новый подпроцесс, что бы выполнить какую либо работу, называется ветвлением (forking) процесса. Новый процесс называется "дочерним" (или "потомком"), а породивший его процесс -- "родительским" (или "предком"). В результате и потомок и предок продолжают исполняться одновременно -- параллельно друг другу.
В общем случае, встроенные команды Bash, при исполнении внутри сценария, не порождают новый подпроцесс, в то время как вызов внешних команд, как правило, приводит к созданию нового подпроцесса.
Внутренние команды могут иметь внешние аналоги. Например, внутренняя команда Bash -- echo имеет внешний аналог /bin/echo и их поведение практически идентично.
#!/bin/bash
echo "Эта строка выводится внутренней командой "echo"."
/bin/echo "А эта строка выводится внешней командой the /bin/echo."
Ключевое слово (keyword) -- это зарезервированное слово, синтаксический элемент (token) или оператор. Ключевые слова имеют специальное назначение для командного интерпретатора, и фактически являются элементами синтаксиса языка командной оболочки. В качестве примера можно привести "for", "while", "do", "!", которые являются ключевыми (или зарезервированными) словами. Подобно встроенным командам, ключевые слова жестко зашиты в Bash, но в отличие от встроенных команд, ключевые слова не являются командами как таковыми, хотя при этом могут являться их составной частью[ 24 ].
Ввод/вывод
echo
выводит (на stdout) выражение или содержимое переменной (см. Пример 4-1).
echo Hello
echo $a
Для вывода экранированных символов, echo требует наличие ключа -e. См. Пример 5-2.
Обычно, командв echo выводит в конце символ перевода строки. Подавить вывод это символа можно ключом -n.
Команда echo может использоваться для передачи информации по конвейеру другим командам.
if echo "$VAR" | grep -q txt # if [[ $VAR = *txt* ]]
then
echo "$VAR содержит подстроку "txt""
fi
Кроме того, команда echo, в комбинации с подстановкой команд может учавствовать в операции присвоения значения переменной.
a=`echo "HELLO" | tr A-Z a-z`
См. так же Пример 12-15, Пример 12-2, Пример 12-32 и Пример 12-33.
Следует запомнить, что команда echo `command` удалит все символы перевода строки, которые будут выведены командой command.
Переменная $IFS обычно содержит символ перевода строки , как один из вариантов пробельного символа. Bash разобьет вывод команды command, по пробельным символам, на аргументы и передаст их команде echo, которая выведет эти аргументы, разделенные пробелами.
bash$ ls -l /usr/share/apps/kjezz/sounds
-rw-r--r-- 1 root root 1407 Nov 7 2000 reflect.au
-rw-r--r-- 1 root root 362 Nov 7 2000 seconds.au
bash$ echo `ls -l /usr/share/apps/kjezz/sounds`
total 40 -rw-r--r-- 1 root root 716 Nov 7 2000 reflect.au -rw-r--r-- 1 root root 362 Nov 7 2000 seconds.au
Это встроенная команда Bash и имеет внешний аналог /bin/echo.
bash$ type -a echo
echo is a shell builtin
echo is /bin/echo
printf
printf -- команда форматированного вывода, расширенный вариант команды echo и ограниченный вариант библиотечной функции printf() в языке C, к тому же синтаксис их несколько отдичается друг от друга.
printf format-string... parameter...
Это встроенная команда Bash. Имеет внешний аналог /bin/printf или /usr/bin/printf. За более подробной информацией обращайтесь к страницам справочного руководства man 1 printf по системным командам.
Старые версии Bash могут не поддерживать команду printf.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Внутренние ссылки
Внутренние ссылки Внутренние ссылки организуют переходы внутри одного HTML-документа. Они применяются, когда на одной странице много текста. Для простоты навигации можно создать ссылки, при щелчке кнопкой мыши на которых пользователь автоматически перейдет к нужной
Внутренние факторы
Внутренние факторы В 1994 году увидела свет первая полнотекстовая поисковая система под названием WebCrawler. Произошла революция: ранее информация в Сети структурировалась исключительно в виде каталогов ссылок, сгруппированных по тематическому признаку. Следом на орбиту
Глава 11 Команды оформления чертежей
Глава 11 Команды оформления чертежей Штриховка Штрихование – это заполнение указанной области по определенному образцу. При этом можно выбрать один из способов определения контуров штриховки: указать точку в области, ограниченной объектами, или выбрать объекты,
Глава 3 Команды главного меню
Глава 3 Команды главного меню Как уже говорилось ранее, в главном меню собраны все команды программы. В данной книге мы не ставили задачу дать детальное описание меню – для этого существуют подробные руководства пользователя. Поэтому многие команды будут описаны кратко,
ГЛАВА 2 Запросы и команды на языке SQL
ГЛАВА 2 Запросы и команды на языке SQL В главе 1, "Основы построения баз данных", где демонстрируется создание базы данных с помощью Visual Studio .NET и SQL Server, вы познакомились со структурой базы данных и ее таблиц. В настоящей главе основное внимание уделяется манипулированию
3.1.4. Внутренние границы
3.1.4. Внутренние границы В Unix действует предположение о том, что программист знает лучше (чем система). Система не остановит пользователя и не потребует какого-либо подтверждения при выполнении опасных действий с данными, таких как ввод команды rm -rf *. С другой стороны, Unix
3.1.4. Внутренние границы
3.1.4. Внутренние границы В Unix действует предположение о том, что программист знает лучше (чем система). Система не остановит пользователя и не потребует какого-либо подтверждения при выполнении опасных действий с данными, таких как ввод команды rm -rf *. С другой стороны, Unix
3.11. Внутренние модификаторы
3.11. Внутренние модификаторы Обычно модификаторы (например, i или m) задаются после регулярного выражения. Но что если мы хотим применить модификатор только к части выражения?Существует специальная нотация для включения и выключения модификаторов. Заключенный в круглые
Глава 11 Команды оформления чертежей
Глава 11 Команды оформления чертежей Штриховка Контур Область Маскировка Простановка размеров Линейные размеры Параллельный размер Длина дуги Ординатные размеры Размер радиуса Размер радиуса с изломом Размер диаметра Угловые размеры Быстрое нанесение размеров
Глава 12. Внешние команды, программы и утилиты
Глава 12. Внешние команды, программы и утилиты Благодаря стандартизации набора команд UNIX-систем, сценарии, на языке командной оболочки, могут быть легко перенесены из системы в систему практически без изменений. Мощь сценариев складывется из наборв системных команд и
Глава 10 Команды оформления чертежей
Глава 10 Команды оформления чертежей Штриховка Команда ВНАТСН, формирующая ассоциативную штриховку, вызывается из падающего меню Draw ? Hatch... или щелчком на пиктограмме Hatch... на панели инструментов Draw. При обращении к команде ВНАТСН загружается диалоговое окно Hatch and Gradient,
Внутренние устройства
Внутренние устройства Наибольшее число моделей устройств видеоввода реализовано в виде плат. Наверняка даже самым «неискушенным» читателям встречались названия такого рода: «плата в стандарте PCI» (Peripheral Component Interconnect – соединение периферийных компонентов). Сейчас самое