Você pode enumerar todas as formas de iniciar um shell interativo?

0

O manual do Bash diz:

An interactive shell is one started without non-option arguments, unless -s is specified, without specifying the -c option, and whose input and output are both connected to terminals (as determined by isatty(3)), or one started with the -i option.

Eu queria saber qual "a menos que -s seja especificado" se aplica a:

  • "sem argumentos não opcionais" ou
  • "sem especificar a opção -c"?

Você pode reformular a frase com mais clareza para enumerar todas as formas de iniciar um shell interativo? (Só estou certo de que posso começar um por -i sozinho, mas não tenho certeza sobre o (s) outro (s) caminho (s) que a citação descreve.

Obrigado.

    
por Tim 05.04.2018 / 14:25

1 resposta

4

“a menos que -s seja especificado” qualifica “sem argumentos não-opcionais”. A sinopse para bash é

bash [options] [command_string | file]

Os argumentos não opcionais são command_string ou file . Se você especificar um desses, o shell resultante não será interativo, a menos que você especifique -s , sem especificar -c . -s faz com que os argumentos sejam atribuídos aos parâmetros posicionais em vez de serem interpretados:

bash -s arg1 arg2

abre um shell interativo e

echo $*

saídas

arg1 arg2

Para que você possa abrir um shell Bash interativo usando um dos itens a seguir:

  1. assegure-se de que a entrada e a saída padrão estejam conectadas a um terminal e não especifiquem argumentos que não sejam de opção;
  2. certifique-se de que a entrada e a saída padrão estejam conectadas a um terminal e especifique -s com quaisquer argumentos além de -c ;
  3. especifique -i .

Se você especificar -c e -s , -c terá precedência (será processado anteriormente). O shell resultante não é interativo e processa o comando fornecido.

    
por 05.04.2018 / 14:36