Для объяснения я использую Firefox, но это также происходит с другими приложениями, вот скрипт:
$ cat ff.sh
#!/bin/sh
firefox http://superuser.com/
echo "$?"
Допустим, Firefox закрыт, когда я бегу
$ ./ff.sh
скрипт заблокирован, пока я не закрою Firefox. Только после этого я получаю код выхода.
0
$
Теперь предположим, что Firefox уже запущен, когда я запускаю скрипт, он открывает новую вкладку Firefox и запускается до конца. (И Firefox продолжает работать.)
$ ./ff.sh
0
$
Как я могу добиться того, чтобы поведение было таким же, как в первом примере, независимо от условия запуска? В основном я хочу достичь противоположности
$ cmd &