letras “A, a” de saída de comandos executados dentro do backstick estão sendo substituídos por espaço vazio, por quê?

1

Aqui está um instantâneo da minha concha faltando "a" caracteres nele !! Estou executando o Ubuntu 16.04

    
por Farhad 27.10.2016 / 00:41

1 resposta

5

Isso aconteceria se sua variável IFS tivesse um a nela. Experimente os seguintes comandos:

$ echo "$IFS"   # Note: the quotes are important.
                # I guess that the output will be “a”, or something that contains “a”.
$ pwd           # I expect that this will work.

$ echo "'pwd'"  # Again, the quotes are important.
                # I expect that this will also give correct output.

IFS é a lista do shell de eparadores i nternais f ield s . Qualquer caractere exibido em $IFS será tratado como se fosse um espaço ao fazer a divisão de palavras de expansões de parâmetros sem nome e substituição de comando.

Não há uma boa razão para a variável IFS ter obtido um a nela; ou seja, se foi isso que aconteceu, não faço ideia do motivo. Se você iniciar uma nova janela de comando (por exemplo, xterm ou o que você usa) e o problema desaparece então é provavelmente localizado em sua janela de comando atual, e provavelmente não voltará. Mas, se uma nova janela de comando tiver o mesmo problema, então você deve pesquisar seus arquivos ~/.* (por exemplo, ~/.bashrc , ~/.bash_profile , ~/.profile , etc.) para um comando que diz IFS=something .

    
por Scott 27.10.2016 / 01:29