$$

Форум предназначен для новичков. В нем предполагается рассматривать вопросы, которые встают на первых этапах освоения Linux
offmind
Заглянувший
Сообщения: 18
Зарегистрирован: 08 янв 2008, 23:52
Откуда: Минск
Контактная информация:

$$

Сообщение offmind »

Что за число отображает команда?

offmind
Заглянувший
Сообщения: 18
Зарегистрирован: 08 янв 2008, 23:52
Откуда: Минск
Контактная информация:

Re: $$

Сообщение offmind »

Виноват :oops: , само разрешилось. Выводит идентификатор последнего поцессса. Можно закрывать.

Аватара пользователя
grub
Неотъемлемая часть форума
Сообщения: 849
Зарегистрирован: 13 сен 2006, 10:29
Откуда: Минск
Контактная информация:

Re: $$

Сообщение grub »

Не последнего, а текущего.
$$ -- переменная, содержащая pid текущего процесса.

offmind
Заглянувший
Сообщения: 18
Зарегистрирован: 08 янв 2008, 23:52
Откуда: Минск
Контактная информация:

Re: $$

Сообщение offmind »

Простите, но где нестыковка? Вот цитата из книги "ПРОГРАММИРОВАНИЕ НА shell (UNIX) (Учебное пособие)" А. Соловьева:
Сам интерпретатор shell автоматически присваивает значения
следующим переменным (параметрам):
? - значение, возвращенное последней командой;
$ - номер процесса;
! - номер фонового процесса;
# - число позиционных параметров, передаваемых в shell;
* - перечень параметров, как одна строка;
@ - перечень параметров, как совокупность слов;
- - флаги, передаваемые в shell.
При обращении к этим переменным (т.е при использовании их в
командном файле - shell-программе) следует впереди ставить "$".
Пример. Вызов расчета

specific par1 par2 par3

имеющего вид

###
# specific: Специальные параметры (переменные)

echo $0 - имя расчета
echo $? - код завершения
echo $$ - идентификатор последнего процесса
echo $! - идентификатор последнего фонового процесса
echo
echo $* - значения параметров, как строки
echo $@ - значения параметров, как слов
echo
set -au
echo $- - режимы работы интерпретатора

Аватара пользователя
grub
Неотъемлемая часть форума
Сообщения: 849
Зарегистрирован: 13 сен 2006, 10:29
Откуда: Минск
Контактная информация:

Re: $$

Сообщение grub »

Нестыковка в том, что в bash первый знак доллара -- это префикс, обозначающий переменную (как в perl). Без этого префикса bash считает что имеет дело с литералом. Соответственно "echo $" выводит просто знак доллара.

Ну и в том, что я здесь (каюсь) автоматом расширил знание о bash на знание о shell-ах вообще. Так делать нельзя и стыдно. (матерясь, ушел читать про POSIX shell)

Аватара пользователя
Firestorm
Неотъемлемая часть форума
Сообщения: 564
Зарегистрирован: 30 окт 2005, 10:10
Откуда: Минск
Контактная информация:

Re: $$

Сообщение Firestorm »

grub,
Ну бывает, не кайся уж так сильно :)
-=FreeBSD Inside=-
http://chrysler-dodge.by - Клуб любителей американских автомобилей

Аватара пользователя
cympak
Увлекающийся
Сообщения: 114
Зарегистрирован: 26 окт 2005, 13:38

Re: $$

Сообщение cympak »

Нет уж, пускай помучается
...а на каком основании ограниченность некоторых делать законом для всех?

Ответить