Bash: efeito da execução de 'set -i'?

1

Hoje eu estava lendo a documentação de set , quando percebi que minha variável flags ( $- ) continha um sinalizador não documentado na página de ajuda ( help set ) e em GNU.org : i .
Depois de algum tempo, consegui encontrar esta página , que afirma que i significa interativo .
A primeira coisa que tentei, claro, foi desligá-lo.
Depois de executar set +i , $- não continha mais i , mas, além disso, tudo parecia estar funcionando como sempre.
Da mesma forma, colocar set -i em um arquivo de script não teve efeito aparente ao executá-lo.

Então, minha pergunta: colocar set -i / set +i em um script ou executá-lo na linha de comando tem algum efeito além de modificar a variável $- ?

    
por Siguza 31.05.2015 / 16:47

2 respostas

5

Aparentemente, a única conseqüência de usar set -i ou set +i na linha de comando depois que o shell foi inicializado é alterar o valor de $- . A opção -i só pode ser usada de maneira significativa ao invocar bash para criar um shell, e nesse caso ele forçará o shell a ser interativo.

Um exame rápido da fonte bash mostra que as verificações interativas durante a execução se referem à variável global interactive , que é definida durante a seqüência de inicialização e depois não é modificada. Somente set [+-]i e $- usam o forced_interactive global. ( interactive será definido como verdadeiro se forced_interactive for definido ou, conforme descrito em man bash .)

    
por 31.05.2015 / 21:07
0

bash-1.14.7-14 tem documentação para a opção -i na página man. link

   -i        If the -i option is present, the shell is interactive.

Um shell interativo lê os comandos da entrada do usuário em um tty. Entre outras coisas, esse shell lê arquivos de inicialização na ativação, exibe um prompt e ativa o controle de tarefas por padrão. O usuário pode interagir com o shell. Um shell executando um script é sempre um shell não interativo.

Mais informações aqui:

link link

Adição: mais links

Uma resposta muito boa sobre shells não-login

link

O manual bash sobre shells interativos

link

    
por 31.05.2015 / 16:58

Tags