Saídas do terminal OS X Bash 4

0

Eu tenho o mais recente OS X executando o aplicativo de terminal padrão, com bash 4.0 via homebrew

No entanto, se eu executar um script que contenha um comando de saída, espera-se que saia do script. Em vez disso, a sessão termina e minha guia desaparece.

Alterei minhas configurações para manter a guia aberta, mas minha sessão ainda termina e, pelo que entendi, é um comportamento não padrão.

O que pode causar isso?

Como um sidenote, aqui está o meu prompt bash etc

    
por Tom J Nowell 29.08.2014 / 16:01

2 respostas

2

I run it with . script

Isso significa que você executa o script no seu shell atual , então a saída mata o seu shell atual. Esse é o comportamento esperado.

Você provavelmente deveria

  1. forneça as permissões de execução do script ( chmod u+x script ) e execute ./script ou
  2. invoque-o com bash script para executá-lo em um novo processo de shell.
por 29.08.2014 / 16:44
0

Este é o meu script:

cat > doExitKeepShell.sh << EOF
#!/bin/bash
sleep 5
exit 0
EOF

e seu executável:

chmod u+x doExitKeepShell.sh

Execute-o e a guia será fechada

$: . doExitKeepShell.sh
# wait 5 sec and window get closed

Execute-o e aguarde 5 segundos para prosseguir com o shell

$: ./doExitKeepShell.sh 
# wait 5 sec till prompt return ;-)

Execute-o e continue trabalhando

$: . doExitKeepShell.sh &
[1] PID    # <- this is your script in background
# Keep on working

Se você quiser ir para o tipo de script

$: %

Se o exec do script terminar, você verá s.th. assim

$: %
-bash: fg: job has terminated
[1]+  Done                    ./doExitKeepShell.sh

Se você tiver vários trabalhos em segundo plano, digite

$: % PID
    
por 13.06.2015 / 13:02