Por padrão, se você apenas definir PS1="...."
, o material dentro das aspas é avaliado no momento em que você o define.
No entanto, se você colocá-lo dentro de '
, ele será avaliado no momento da exibição. E isso não causa um subshell para $(jobs)
.
por exemplo,
$ PS1='
> $(jobs)
> $ '
$ sleep 1000 &
[1] 7541
[1] + Running sleep 1000 &
$ sleep 1000 &
[2] 7543
[2] + Running sleep 1000 &
[1] - Running sleep 1000 &
$ kill %1
[1] - Terminated sleep 1000 &
[2] + Running sleep 1000 &
$ kill %2
[2] + Terminated sleep 1000 &
$
(Este teste feito no Debian Jessie com o ksh93, mas deve funcionar em todas as variantes do ksh93; eu não tenho nenhum ksh88 para testar.)