Script dentro do shell bash que está dentro de outro shell bash [closed]

0

Estou tentando executar um programa simples

#!/bin/bash
bash
echo "Hello World"

Mas o programa só chega ao comando 'bash' na linha 2. Por que o programa não pode executar a linha 3? O programa termina na entrada do bash

bash-3.2$

Existe outra linha que eu preciso adicionar para que o programa possa imprimir "Hello World"? Tenha em mente que eu entendo que eu já estou em um bash shell, mas eu ainda não entendo esse erro.

    
por shortcircuit 07.10.2015 / 01:04

1 resposta

2

Supondo que você esteja executando isso a partir de um prompt de comando em um terminal, você está executando três instâncias de bash:

  1. O bash interativo em execução no terminal.
  2. A instância do bash que executa seu script.
  3. A instância do bash que é invocada pela segunda linha do script.

Em seu script, você invoca bash sem argumento, portanto, lê comandos de sua entrada padrão. Como a entrada é proveniente de um terminal, você obtém um shell interativo, que imprime um prompt e assim por diante.

Após sair da instância # 3, o script (instância # 2) continua na próxima linha e imprime Hello World . Depois disso, o script termina e você volta ao prompt de comando original (instância # 1).

    
por 07.10.2015 / 04:22