При использовании команды 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