Команды echo и printf

При использовании команды echo возникает общая проблема - удаление символа перехода на новую строку. В ОС Linux общепринятый метод - echo -n "string to output"

Printf

Команда printf есть только в современных командных оболочках. Группа Х/Ореп полагает, что ее следует применять вместо команды echo для генерации формати­рованного вывода. У команды printf следующая синтаксическая запись.

printf "строка формата" параметр1 параметр2...

Строка формата очень похожа с некоторыми ограничениями на применяемую в языках программирования С и C++. Главным образом не поддерживаются числа с плавающей точкой, поскольку все арифметические операции в командной обо­лочке выполняются над целыми числами. Строка формата состоит из произвольной комбинации литеральных символов, escape-последовательностей и спецификаторов преобразования. Все символы строки формата, отличающиеся от \ и %, отобража­ются на экране при выводе.

В табл. 3 приведены поддерживаемые командой escape-последовательности.

Таблица 3. Некоторые escape-последовательности

Escape-последовательность Описание
\" Двойная кавычка
\\ Символ обратный слэш
\n Символ перехода на новую строку
\r Возврат каретки
\t Символ табуляции
\v Символ вертикальной табуляции
\ооо Один символ с восьмеричным значением ооо
\хНН Один символ с шестнадцатеричным значением HH

Спецификатор преобразования состоит из символа %, за которым следует символ преобразования. Основные варианты преобразований перечислены в табл. 4.

Таблица 4 Спецификаторы преобразования

Символ преобразования Описание
d Вывод десятичного числа
c Вывод символа
s Вывод строки
% Вывод знака %

Строка формата используется для интерпретации остальных параметров команды и вывода результата, как показано в следующем примере:

$ printf "%s\n" hello

hello

$ printf "%s %d\t%s" "Hi There" 15 people

Hi There 15 people

Обратите внимание на то, что для превращения строки Hi There в еди­ный параметр ее нужно заключить в кавычки ("").

Команда return

Команда return служит для возврата значений из функций, как уже упоминалось ранее при обсуждении функций. Команда принимает один числовой параметр, который становится доступен в сценарии, вызывающем функцию. Если параметр не задан, команда return по умолчанию возвращает код завершения последней команды.

Команда shift

Команда shift сдвигает все переменные-параметры на одну позицию назад, так что параметр $2 становится параметром $1, параметр $3 - $2 и т. д. Предыдущее зна­чение параметра $1 отбрасывается, а значение параметра $0 остается неизменным. Если в вызове команды shift задан числовой параметр, параметры сдвигаются на указанное количество позиций. Остальные переменные $* и $# также изменяют­ся в связи с новой расстановкой переменных-параметров.

Команда shift часто полезна при поочередном просмотре параметров, переданных в сценарий, и если вашему сценарию требуется 10 и более параметров, вам понадобится команда shift для обращения к 10-му параметру и следующим за ним.

Например, вы можете просмотреть все позиционные параметры:

#!/bin/sh

while [ "S1"!= ""]; do

echo "$1"

shift

done

exit 0


Команда stat

Команда stat предназначена для получения информации об указанном файле и о свойствах файловой системы на носителе, на котором хранится указанный файл.

Примеры использования команды.

Команда

stat res

где res – имя файла, выводит на экран всю информацию о файле с именем res и о владельце этого файла.

Команда

stat –f res

где res – имя файла, выводит на экран всю информацию о файловой системе на диске, на котором хранится файл с именем res.

Для получения доступа к отдельным полям информации о файле или файловой системе к приведенным выше командам добавляется ключ –с и параметр, определяющий поле. Например, для получения размера файла в байтах должен быть указан ключ %s и команда stat записывается в виде

stat res –c %s

Список ключей команды stat можно получить с помощью команды stat --help


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: