Sempre que inicio a máquina, eu executo o seguinte programa:
$ cat start.sh
#! /bin/bash
google-chrome &> /dev/null &
lantern &> /dev/null &
xdg-open . &> /dev/null &
emacs &> /dev/null &
code ~/Programs/ &> /dev/null &
xdg-open ~/Reference/topic_regex.md &> /dev/null &
Pesado &> /dev/null &
... Como eu poderia encurtar a lógica?
command-line
bash
redirect
background-process
Cálculo
fonte
fonte
Respostas:
A parte
&> /dev/null
significa redirecionamento de saída. Você pode redirecionar vários comandos para o mesmo arquivo, agrupando-os em um bloco:A mesma coisa, no entanto, não pode ser usada para iniciar comandos individuais em segundo plano (
&
). Colocar&
após o bloco significaria executar o bloco inteiro como um único script em segundo plano.fonte
&>
sintaxe está obsoleta e deve ser substituída por>/dev/null 2>&1
wiki-dev.bash-hackers.org/scripting/obsolete#!/bin/bash
script em um shell diferente sem primeiro verificar a portabilidade, definitivamente não é culpa do Bash se não funcionar.Eu escrevi uma função e a coloquei no meu
.bashrc
para executar coisas desanexadas do meu terminal:... e depois:
E como sou preguiçosa, também escrevi um atalho para
xdg-open
:Como
xdg-open
espera exatamente um argumento, a funçãoxo
repete todos os argumentos fornecidos e chamaxdg-open
cada um separadamente.Isso permite:
fonte
Você pode redirecionar a saída para todos os comandos subseqüentes com
fonte
Você pode criar um loop e fornecer os comandos como argumentos:
Observe que, assim como na abordagem de subshell com chaves, é possível resumir as saídas e redirecionar todas elas de uma só vez.
fonte
Eu criei um arquivo especial como
/dev/null
um caminho mais curto para diminuir o redirecionamento. Eu usei/n
como o novo caminho do arquivo:Dessa forma, você pode reduzir as linhas individuais para, por exemplo:
Fonte: Como criar / dev / null?
fonte