[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Особенности команды echo под Линукс



On Sat, Aug 22, 2009 at 12:11:59AM +0400, James Brown wrote:
> Хотел бы уточнить такую особенность данной команды.
> В учебнике Тэйнсли приводятся примеры использования данной команды типа
> "$ echo "Ваш начальный каталог $HOME, Вы подключены к 'tty' " (и еще там
> один пример, с сохранением в файл и др. командой, т.к. он аналогичен,я
> его здесь не ривожу).
> В результате в выводе должены быть вычислены значения $HOME и выполнена
> команда tty.
> У меня только вычисляется значение $HOME, команда tty не выполняется и
> просто выводиться  в виде текста tty :
> $ echo "Ваш начальный каталог $HOME, Вы подключены к 'tty' "
> Ваш начальный каталог /home/igor, Вы подключены к 'tty'
> 
> Поскольку $  tty
> /dev/pts/2
> , вроде бы согласно учебнику там вместо tty должно быть вычислено его
> значение /dev/pts/2
> 
> В чем дело и как правильно это делать под Линуксом/Дебианом?

А ты так попробуй:
$ echo "Ваш начальный каталог $HOME, Вы подключены к `tty`"
(заметь обратные апострофы)

Или так:
$ echo "Ваш начальный каталог $HOME, Вы подключены к $(tty)"

Эта фича называется command substitution и выполняется она не
командой echo, а оболочкой, _до_ передачи аргумента команде echo. То
же самое можно сказать и про раскрытие $HOME. Роль echo -- вывести
на stdout последовательно все строки, которые эта команда
получила через параметры командной строки.

-- 
Stanislav


Reply to: