Executando bash -v ou bash --v por engano para saber a versão bash comparada ao bash -v varname

0

Algumas vezes eu confundi bash -v ou bash --v para representar bash --version , o que eles não fazem, a partir de Bash 4.3.48 (1).

De man bash , bash -v é equivalente a bash --verbose ; embora retorne uma saída grande (supostamente alguns arquivos bashrc , talvez mais); Eu acho que só começa uma sessão infantil.

bash --v produz muito menos, principalmente bash: --v: invalid option .

Eu planejei perguntar se algum dos dois poderia ser problemático em um bash padrão, mas não vejo nenhuma evidência para isso e assume que os novatos do Bash não deveriam ser estressados por isso.

Minha pergunta

Eu entendi errado de man bash , qual é o significado de bash -v varname .

Qual é o significado de iniciar uma nova sessão bash com uma variável aparentemente indefinida, ou significa iniciá-la também imprimindo o valor de uma variável exportada [1 ]?

Notas para recém-chegados:

  1. Uma variável exportada é qualquer variável herdada de uma sessão de shell para outra (digamos da sessão 0 para a sessão 1).
por user9303970 14.04.2018 / 16:54

1 resposta

4

Você está confundindo duas coisas.

  1. A partir de bash as bash -v iniciará um shell bash no qual a opção shell set -v ( set -o verbose ) está configurada. É equivalente a bash -o verbose e bash --verbose (uma das poucas opções de shell que tem uma opção longa equivalente). Um é capaz de definir qualquer uma das opções de abefhkmnptuvxBCHP usando suas letras únicas ou usando -o e seu nome longo diretamente ao iniciar bash , por ex. bash -x e bash -o xtrace .

  2. O -v varname vem, suponho, da descrição do comando test interno, que é capaz de testar se uma variável é definida com test -v varname ou [ -v varname ] .

Veja o bash manual ou help set e help test em bash .

As opções longas para bash não podem ser abreviadas.

    
por 14.04.2018 / 17:03