Шрифт:
$ echo "Выводим 3 пустые строхи\n\n\nОК"
Выводим 3 пустые строки
OK
В любом месте строки можно размещать символы табуляции:
$ echo "Один символ табуляции\tДве табуляции\t\tOK"
Один символ табуляции Два символа табуляции ОК
Чтобы перенаправить результаты работы команды echo в файл, воспользуйтесь оператором '>':
$ echo "Строка занесена в файл." > myfile
В этом случае содержимое файла myfile будет заменено. Существует также оператор '>>', который позволяет добавить строку в конец файла:
$ echo "Отчет создал пользователь $LOGNAME. `date` " >> myfile
Здесь используется переменная среды $LOGNAME, которая содержит регистрационное имя текущего пользователя.
Рассмотрим содержимое файла myfile:
$ cat myfile
Строка занесена в файл.
Отчет создал пользователь root. Sat May 22 18:25:06 GMT 1999
Одной из проблем, с которыми часто сталкиваются начинающие пользователи при работе с командой echo, является включение в строку двойных кавычек. Символы двойных кавычек имеют специальное назначение в интерпретаторе shell,
поэтому должны быть защищены с помощью обратной косой черты. Вот как выводится на экран строка "/dev/rmt0":
$ echo "\"/dev/rmt0\""
"/dev/rmt0"
5.2. Команда read
Команда read читает одну строку из стандартного входного потока и записывает ее содержимое в указанные переменные. Если задана единственная переменная, в нее записывается вся строка. В результате ввода команды read без параметров строка помешается в переменную среды $reply. При указании нескольких переменных в первую из них записывается первое слово строки, во вторую — второе слово и т. д. Последней переменной присваивается остаток строки.
Общий формат команды таков:
read переменная1 переменная2…
В следующем примере в переменную name записывается весь вводимый с клавиатуры текст до тех пор, пока не будет нажата клавиша [Enter]:
$ read name Джон Алан Доу $ echo $name
Джон Алан Доу
Представленная ниже команда заносит введенные имя и фамилию в две переменные. В качестве разделителя между словами используется пробел.
$ read name surname
Джон Доу
$ echo $name $surname
Джон Доу
Если во входной строке больше слов, чем указано переменных, в последнюю переменную записываются все оставшиеся слова:
$ read name surname Джоя Алан Доу
$ echo $name
Джон
$ echo $surnane
Алан Доу
Следующий сценарий вызывает отдельную команду read для чтения каждой переменной:
$ cat var_test
#!/bin/sh
# var_test
echo "Имя:\c"
read name
echo "Отчество:\c"
read middle
echo "Фамилия:\c"
read surname
В Linux…
Вместо управляющего символа \с в команде echo следует указывать опцию -n:
$ cat var_test
#!/bin/sh
# var_test
echo -n "Имя:"
read name
echo -n "Отчество:"
read middle
echo -n "Фамилия:"
read surname
5.3. Команда cat
Команда cat довольно проста, но универсальна. Эту команду удобно применять как для отображения файла, так и для его создания, а также при отображении файлов, содержащих управляющие символы. Используя команду cat, следует учитывать, что процесс вывода не останавливается по достижении конца страницы — файл пролистывается до конца. Если необходимо просмотреть файл постранично, передайте вывод команды cat какой-нибудь программе постраничной разбивки:
$ cat myfile | more
или
$ cat myfile | pg
Общий формат команды cat таков:
cat [опции] имя_файла1…имя_файла2…
Из опций команды cat в первую очередь заслуживает внимания опция -v, активизирующая режим отображения непечатаемых символов. Вывести файл myfile позволяет вот такая простая команда:
$ cat myfile
Для отображения сразу трех файлов — myfile1, myfile2 и myfile3 — нужно выполнить команду
$ cat myfile1 myfile2 myfile3
Чтобы сформировать файл bigfile, включающий содержимое файлов myfile1, myfile2 и myfile3, следует перенаправить выходной поток предыдущей команды в новый файл:
$ cat myfile1 myfile2 myfile3 >> bigfile
Если необходимо создать новый файл и ввести в него текст, не указывайте входной файл. В таком случае команда cat читает данные не из файла, а из стандартного входного потока (клавиатуры), и вам остается лишь перенаправить его в новый файл:
$ cat >> myfile
Это новый файл
<CTRL-D>
$ pg myfile
Это новый файл
По завершении ввода данных нажмите [Ctrl+D].
Для просмотра управляющих символов в файле воспользуйтесь опцией -v. Следующая команда отображает содержимое файла, в котором встречаются символы <CTRL-M> (представлены как ^M):