/bin/sh бля
[park log]# sleep 10 &
[1] 26509
[park log]# jobs -l
[1]+ 26509 Running sleep 10 &
[park log]#
Что я делаю не так ?
[1] 26509
[park log]# jobs -l
[1]+ 26509 Running sleep 10 &
[park log]#
Что я делаю не так ?

Ты это в командной строке набираешь.
А надо - в скрипте.
А надо - в скрипте.
[park log]# sh
sh-2.05b# sleep 10 &
[1] 26766
sh-2.05b# jobs -l
[1]+ 26766 Running sleep 10 &
sh-2.05b#
И вот так работает.
sh-2.05b# sleep 10 &
[1] 26766
sh-2.05b# jobs -l
[1]+ 26766 Running sleep 10 &
sh-2.05b#
И вот так работает.

А в скрипте разве должно ?
Shell Environment же разные по идее ?
Shell Environment же разные по идее ?
[cccp ahill]$ tcsh q.sh
[1] 7765
[1] + 7765 Running sleep 10
[cccp ahill]$
[cccp ahill]$ bash q.sh
[cccp ahill]$
Как видишь, в некоторых шеллах - одинаковые.

Хрен уже объяснил, что не так.
Поставим вопрос по другому: каким образом мне в bash запустить в фоне задачу и затем получить её pid?
Поставим вопрос по другому: каким образом мне в bash запустить в фоне задачу и затем получить её pid?
sleep 10 &
jobs -lp %%
jobs -lp %%
Не совсем так, но через '%'. Спасибо!
Правда получается совсем несовместимо с sh.
Правда получается совсем несовместимо с sh.
set -m
включает job control для неинтерактивного случая
это я в man bash прочитал, рекомендую
включает job control для неинтерактивного случая
это я в man bash прочитал, рекомендую
set -mНо не работает.
$ cat t.sh
#!/bin/sh
set -m
sleep 10 &
jobs -l
$ ./t.sh
[1]+ 7172 Running sleep 10 &
Ошибся. Слишком много ключей к jobs написал. Спасибо!
Оставить комментарий
sergey_m
Во всех дистрибутивах люлекса /bin/sh на самом деле bash? Мне это интересно потому, что уже конкретно задолбала несвоместимость с стандартным шеллом. Сегодняшнее открытие:ни хера не выводит на экран.
а должно