Страница 1 из 1

$$

Добавлено: 15 янв 2009, 18:10
offmind
Что за число отображает команда?

Re: $$

Добавлено: 15 янв 2009, 18:28
offmind
Виноват :oops: , само разрешилось. Выводит идентификатор последнего поцессса. Можно закрывать.

Re: $$

Добавлено: 15 янв 2009, 19:29
grub
Не последнего, а текущего.
$$ -- переменная, содержащая pid текущего процесса.

Re: $$

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

specific par1 par2 par3

имеющего вид

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

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

Re: $$

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

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

Re: $$

Добавлено: 16 янв 2009, 11:23
Firestorm
grub,
Ну бывает, не кайся уж так сильно :)

Re: $$

Добавлено: 19 янв 2009, 15:03
cympak
Нет уж, пускай помучается