echo копирует свои аргументы в стандартный вывод, после каждого кроме последнего аргумента добавляется пробел. После последнего выведенного аргумента обычно ставится символ новой строки. Вы можете использовать эту команду для выдачи приглашения для ввода, организации вывода сообщений в процедурах Shell или для добавления нескольких строк в выходной поток в середине конвейера. Другое применение echo - это проверка процесса генерации списка аргументов для других команд. Вы можете вместо команды ls использовать:
echo *
т.к. последняя работает значительно быстрее.
Опция -n указывает echo не ставить символ новой строки в конце выведенной строки. Так, следующие две команды создают приглашение для ввода и затем дают возможность вводить информацию на той же строке, где находится приглашение:
echo -n 'enter name:'
read name
Команда echo может обрабатывать некоторые ESC-последовательности, описанные в UNIX User's Reference.
Оценка арифметических выражений: expr
Команда expr осуществляет арифметические и логические действия над целыми числами и в качестве ее аргументов можно использовать шаблоны. Эта команда оценивает отдельное выражение и записывает результат в стандартный вывод. expr можно использовать внутри обратных кавычек для установки значения переменных. Ниже приводятся характерные примеры использования этой команды:
# увеличить $A
A=`expr $A + 1`
# поместить символы $1 с 3-го по последний
# в подстроку substring
substring=`expr "$1" : '..\(.*\)'`
# получить длину $1
c=`expr "$1" : '.*'`
Наиболее часто expr применяется для подсчета числа итераций в циклах.
Команды true и false возвращают код завершения 0 или не 0, соответственно. Их часто используют для создания безусловных циклов, например:
while true
do
echo forever
done
В результате слово forever будет появляться на экране до тех пор, пока не будет нажато INTERRUPT.
При обнаружении командной строки в виде:
command << eofstring
где eofstring - любая произвольная строка, Shell будет воспринимать все последующие строки как стандартный ввод для команды (command) до тех пор, пока не будет прочитана строка, содержащая только eofstring. (При добавление знака (-) к символам переадресации (<<) из каждой строки вводимого документа будут удаляться лишние пробелы и знаки табуляции.)
Shell создает временный файл, содержащий вводимый документ, и производит в нем необходимые подстановки команд и переменных и затем только пересылает его в указанную команду. При подстановке команд в командной строке выполняется поиск файлов по указанным шаблонам. Для того, чтобы отменить все подстановки, введите:
command <<\eofstring
Внутристрочный ввод документов особенно удобен для небольшого количества входных данных, поскольку гораздо удобнее помещать их сразу внутрь процедуры, а не создавать отдельный файл. Например, вы можете ввести:
cat <<-xx
Это сообщение будет выведено на терминал без лишних пробелов и знаков табуляции.