coloque isso no seu .profile
ou .bashrc
ou .zshrc
ou qualquer shell que você use:
function mycommand {
tor &
polipo &
planobar
}
E agora é só executar mycommand
Eu uso pianobar
player. Mas antes de iniciá-lo, preciso executar tor
e polipo
. Ambos são contínuos (estão em execução até serem interrompidos). Basicamente, o que eu estou procurando é um único comando que geraria tor
e polipo
processos (sua saída não é necessária) e então abriria o pianobar em primeiro plano.
Editar: Acontece que tor
leva vários segundos para começar, e é por isso que as soluções sugeridas não funcionaram no começo. Eu postei isso no caso de alguém ter o mesmo problema:
function piano {
tor &
polipo &
sleep 3
pianobar &&
killall tor
killall polipo
}
Isto é o que os scripts de shell são para ; para executar vários comandos enquanto apenas digita um. A seguir, um pequeno script que, acredito, faz o que você pediu:
#!/bin/sh
tor & tor_pid=$!
polipo & polipo_pid=$!
sleep 5
pianobar
kill $tor_pid
kill $polipo_pid
Coloque isso em um arquivo, talvez $HOME/local/bin/startpiano
, torne-o executável com chmod +x $HOME/local/bin/startpiano
e adicione $HOME/local/bin
ao final de sua variável PATH
.
Esta é também a função do shell ; para executar uma tarefa logicamente distinta. Você pode criar uma função shell assim:
startpiano () {
tor & tor_pid=$!
polipo & polipo_pid=$!
sleep 5
pianobar
kill $tor_pid
kill $polipo_pid
}
Isto iria em um dos arquivos de inicialização para o seu shell particular.
EDITAR : Com a pergunta editada, eu aconselho a não usar um alias, já que a tarefa agora se tornou um pouco complexa demais. Deixarei meu texto original sobre aliases aqui intactos.
Isto é também o que os aliases são para ; fazer coisas simples que você não precisa digitar de novo e de novo. É assim que você define um alias para ele:
alias startpiano="polipo &; tor &; pianobar"
Isso também aconteceria em um dos scripts de inicialização do seu shell.
Qualquer uma dessas três soluções permitirá que você digite
$ startpiano
para iniciar os programas de que você precisa.
O shell script tem o benefício sobre a função shell e o alias de não adicionar mais peso aos seus arquivos de inicialização do shell (além de anexar sua localização ao final da variável PATH
).
A função shell tem o benefício sobre o alias que depois você pode adicionar argumentos de linha de comando (também para o script), e que é legível (e de muitas maneiras se comporta como seu próprio "script") ).
O alias funciona, mas na verdade, o único uso de aliases é substituir coisas realmente simples por coisas mais curtas para o benefício de seus dedos, como sinalizadores de linha de comando para ls
etc. ( alias ls="ls -F"
é o apenas alias que eu tenho).