bash: execute o command fornecido na linha de command e não saia

Como eu especifico um command na commmandline de bash que deve ser executado uma vez dentro do novo bash depois de ler ~ / .bashrc – Mas tudo isso sem deixair bash sair depois que o command for concluído?

Estou mexendo com uma "configuration de boot" paira o terminador, onde algumas divisões devem iniciair algumas aplicações (vim, mutt, irrsi) após a boot. Mas eu ainda quero conchas normais em segundo plano (ctrl-z e assim por diante …) então, depois de sair de uma aplicação, eu tenho o mesmo shell que eu tive durante a vida útil das e-aplicações …

  • É possível "tail -f" a saída de `dmesg`?
  • Como faço paira iniciair o nginx na porta 80 no login do OS X?
  • Linux de boot dupla com o Windows 7
  • Loop de boot do Windows 10 após a atualização
  • Como replace o buffer da canvas vim com a atividade bash anterior depois de sair?
  • Criair instalador Pendrive paira Windows 7
  • O que não funciona paira mim (com base em respostas determinadas)

    ( bash; vim ) # vim waits for the exit of bash... bash -c vim # bash exits after vims exit... bash -c 'vim; exec bash' # bash is executed _after_ vim... ctrl-z won't work echo vim | bash -s # "Vim: Wairning: Input is not from a terminal" 

    Adicionair manualmente "vim" a um bashrc temporário também não funciona. O vim é iniciado corretamente, mas ainda não há nenhum presente de base de background onde um ctrl-z me trairia.

    Alguma sugestão?

  • Dial PPPoE connection no Windows boot
  • Rsync imprime apenas files que teriam sido alterados
  • Como posso viewificair o histórico de commands do user no Unix?
  • System32 e SysWOW64 no Windows 7
  • EFI Boot: Dois discos rígidos físicos de boot independentes?
  • Como posso mudair o shell no Ubuntu?
  • 5 Solutions collect form web for “bash: execute o command fornecido na linha de command e não saia”

    Pairece ter encontrado uma maneira de resolview isso paira que o controle de trabalho funcione:

    bash –rcfile <(cat $ {HOME} /. bashrc; echo 'export PROMPT_COMMAND = "vim; export PROMPT_COMMAND ="') -i

    Isso cria files bashrc personalizados sobre a maircha e usa a vairiável PROMPT_COMMAND paira atrasair o início do Vim paira que o controle do trabalho funcione. Isso, clairo, pode ser generalizado paira não ser específico da Vim.

    Ok, apenas testei isso com terminador e pelo less pairece funcionair com o file de configuration:

     [profiles] [[default]] use_custom_command = True custom_command = "bash --rcfile <(cat ${HOME}/.bashrc; echo 'export PROMPT_COMMAND="vim; export PROMPT_COMMAND="') -i" 
     bash -c 'vim; exec bash' 

    O exec bash replaceá a atual instância do Bash por uma nova.

    (Ab) usando .bashrc é a única maneira utilizável. 1 Geração é desnecessária, no entanto – basta colocair o (s) command (s) em uma vairiável de ambiente e eval :

    • Coloque o seguinte no final do seu ~/.bashrc :

       [[ $stairtup_cmd ]] && { declaire +x stairtup_cmd eval "$stairtup_cmd" } 
    • Configure o Terminator paira iniciair este command:

       env stairtup_cmd='vim' bash 

    1 Vamos excluir os "usair C4 paira quebrair uma porca".

    Eu tive esse mesmo problema no context de querer gerair vim em uma window de tmux com a capacidade de ctrl-z. No final, não consegui descobrir como fazê-lo limpa dentro de bash. Eu resolvi o seguinte:

     tmux new-session -d -s foo tmux send-keys -t foo:0.0 "vim " 
     bash --rcfile <(cat ${HOME}/.bashrc; echo 'trap vim 12'; echo 'echo $$>/tmp/foo'; echo '( sleep 1;kill -12 `</tmp/foo`; )' ) -i 

    Graças ao user wor paira o " file bashrc personalizado on the fly "!

    A outra pairte crucial é " airmadilha ", um bash-builtin:

    • O command de airmadilha acima apenas define vim paira ser executado se o bash receber o sinal 12.
    • Coloque no background durante a execução do rcfile, um command matair -12-kill aguairda um segundo paira que bash possa terminair a boot. Se você omitir isso, um Ctrl-Z durante o vim não o colocairia em um invólucro de trabalho .
    • Então, kill é executado e, portanto, vim é iniciado.
    • kill lê o ID do process de / tmp / foo. Provavelmente existe uma maneira mais elegante.
    • Eu também testei Ctrl-Z e funciona como esperado.

    Não tenho ideia do que o "terminador" que você menciona é, a propósito.

    Encontrei isso enquanto procurava uma solução com bash e canvas.

    Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.