/bin/sh бля

sergey_m

Во всех дистрибутивах люлекса /bin/sh на самом деле bash? Мне это интересно потому, что уже конкретно задолбала несвоместимость с стандартным шеллом. Сегодняшнее открытие:


#!/bin/sh
sleep 10 &
jobs -l


ни хера не выводит на экран.
а должно

irinkina

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

pollak

Ты это в командной строке набираешь.
А надо - в скрипте.

irinkina

[park log]# sh
sh-2.05b# sleep 10 &
[1] 26766
sh-2.05b# jobs -l
[1]+ 26766 Running sleep 10 &
sh-2.05b#
И вот так работает.

irinkina

А в скрипте разве должно ?
Shell Environment же разные по идее ?

pollak



[cccp ahill]$ tcsh q.sh
[1] 7765
[1] + 7765 Running sleep 10
[cccp ahill]$




[cccp ahill]$ bash q.sh
[cccp ahill]$


Как видишь, в некоторых шеллах - одинаковые.

sergey_m

Хрен уже объяснил, что не так.
Поставим вопрос по другому: каким образом мне в bash запустить в фоне задачу и затем получить её pid?

ppplva

sleep 10 &
jobs -lp %%

sergey_m

Не совсем так, но через '%'. Спасибо!
Правда получается совсем несовместимо с sh.

Marinavo_0507

set -m
включает job control для неинтерактивного случая
это я в man bash прочитал, рекомендую

sergey_m

set -m
Но не работает.

Marinavo_0507



$ cat t.sh
#!/bin/sh
set -m
sleep 10 &
jobs -l
$ ./t.sh
[1]+ 7172 Running sleep 10 &

sergey_m

Ошибся. Слишком много ключей к jobs написал. Спасибо!
Оставить комментарий
Имя или ник:
Комментарий: