Читаем Искусство программирования на языке сценариев командной оболочки полностью

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 обычно содержит символ перевода строки \n, как один из вариантов пробельного символа. 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, к тому же синтаксис их несколько отдичается друг от друга.

printfformat-string... parameter...

Это встроенная команда Bash. Имеет внешний аналог /bin/printf или /usr/bin/printf. За более подробной информацией обращайтесь к страницам справочного руководства man 1 printf по системным командам.

Старые версии Bash могут не поддерживать команду printf.

<p><strong>Пример 11-1. printf в действии</strong></p>

#!/bin/bash

# printf demo

# От переводчика:

# Считаю своим долгом напомнить, что в качестве разделителя дробной и целой

# частей в вещественных числах, может использоваться символ "запятая"

# (в русских локалях), поэтому данный сценарий может выдавать сообщение

# об ошибке (у меня так и произошло) при выводе числа PI.

# Тогда попробуйте заменить в определении числа PI десятичную точку

# на запятую -- это должно помочь. ;-)

PI=3,14159265358979

DecimalConstant=31373

Message1="Поздравляю,"

Message2="Землянин."

echo

printf "Число пи с точностью до 2 знака после запятой = %1.2f" $PI

echo

printf "Число пи с точностью до 9 знака после запятой = %1.9f" $PI # Даже округляет правильно.

printf "\n" # Перевод строки,

printf "Константа = \t%d\n" $DecimalConstant # Вставлен символ табуляции (\t)

printf "%s %s \n" $Message1 $Message2

echo

# ==========================================#

# Эмуляция функции 'sprintf' в языке C.

# Запись форматированной строки в переменную.

echo

Pi12=$(printf "%1.12f" $PI)

echo "Число пи с точностью до 12 знака после запятой = $Pi12"

Msg=`printf "%s %s \n" $Message1 $Message2`

echo $Msg; echo $Msg

exit 0

Одно из полезных применений команды printf -- форматированный вывод сообщений об ошибках

E_BADDIR=65

var=nonexistent_directory

error()

{

printf "$@" >&2

# Форматированный вывод аргументов на stderr.

echo

exit $E_BADDIR

}

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных