observe que, usando isso, você perde o controle dos trabalhos dentro do shell do chamador ( jobsnão mostrará nada).
Mcq #
36
Execute o shell interno:
$ set+m
Isso funciona desativando o "modo monitor" para que o shell não relate o término dos trabalhos em segundo plano.
Embora esteja executando o comando em um subshell como:
$ (sleep 2&)
... também desativará a mensagem, a única razão pela qual ela funciona é porque o modo de monitor é ativado por padrão apenas para shells interativos. Ou seja, o subshell evita a mensagem executando um shell extra que possui um "conjunto + m" automático .
Deve-se notar que essa saída não é realizada pelo sono. É o shell bash que apenas informa sobre o trabalho em segundo plano concluído.
Fl4
8
Eu gostaria de esclarecer as duas respostas anteriores. Se o que você deseja é nunca ver a mensagem Concluído de nenhum comando no seu shell, set +mé o caminho a seguir. Basta colocá-lo em seu .profile e / ou .bashrc e pronto. Observe, no entanto, que se você digitar isso:
set+m
sleep 2&set-m
e o sono terminar após a final set -m, você ainda receberá a mensagem concluída.
Se você deseja desativar a mensagem para uma chamada de comando único, a técnica de subshell (sleep 2 &)é o caminho a seguir.
Com toda a honestidade, eu só sabia set +m, então marque +1 em Wooble por me esclarecer. No entanto, vale a pena notar que qual das duas soluções você deseja depende do que você está tentando fazer.
jobs
não mostrará nada).Execute o shell interno:
Isso funciona desativando o "modo monitor" para que o shell não relate o término dos trabalhos em segundo plano.
Embora esteja executando o comando em um subshell como:
... também desativará a mensagem, a única razão pela qual ela funciona é porque o modo de monitor é ativado por padrão apenas para shells interativos. Ou seja, o subshell evita a mensagem executando um shell extra que possui um "conjunto + m" automático .
fonte
Eu gostaria de esclarecer as duas respostas anteriores. Se o que você deseja é nunca ver a mensagem Concluído de nenhum comando no seu shell,
set +m
é o caminho a seguir. Basta colocá-lo em seu .profile e / ou .bashrc e pronto. Observe, no entanto, que se você digitar isso:e o sono terminar após a final
set -m
, você ainda receberá a mensagem concluída.Se você deseja desativar a mensagem para uma chamada de comando único, a técnica de subshell
(sleep 2 &)
é o caminho a seguir.Com toda a honestidade, eu só sabia
set +m
, então marque +1 em Wooble por me esclarecer. No entanto, vale a pena notar que qual das duas soluções você deseja depende do que você está tentando fazer.fonte
Sem um subshell , você pode fazer o seguinte:
Com base nesta resposta .
fonte