Alias não atribuído corretamente

1

Eu tenho um problema estranho com um apelido bash. Eu tenho o seguinte alias definido no meu .bashrc:

alias rec='nano 'ls slurm-* | sort -t. -k3n | tail -1''

No entanto, quando eu expandir o alias rec no shell com CTRL ALT E , obtenho:

nano Remember that all constraints must be readded!

Se eu executar o alias, recebo a mesma coisa:

nano Remember that all constraints must be readded!

Se eu usar which rec , obtenho a expansão correta:

alias rec='nano 'ls slurm-* | sort -t. -k3n | tail -1''
/home/spack/opt/spack/linux-rhel6-x86_64/gcc-4.4.7/nano-2.6.3-k2cwz7lwjd4zutb7r7cfo63apevyztuw/bin/nano
/home/spack/opt/spack/linux-rhel6-x86_64/gcc-4.4.7/coreutils-8.26-icpocuezd6r7ydd73ipkehkg345372eo/bin/sort
/home/spack/opt/spack/linux-rhel6-x86_64/gcc-4.4.7/coreutils-8.26-icpocuezd6r7ydd73ipkehkg345372eo/bin/tail

Este Remember that all constraints must be readded! é a saída de um script (supostamente) completamente não relacionado que escrevi. Alguma ideia do que está acontecendo aqui?

    
por captainalright 13.08.2017 / 00:33

1 resposta

1

Você está analisando ls , você não deve fazer isso . Eu acho que pode ser a fonte do seu problema.

Por exemplo se pelo menos um dos seus slurm-* nomes de arquivos for como:

*\nRemember that all constraints must be readded!

ou

*\nRemember that all constraints must be readded!\n*

onde \n é uma nova linha, então sort recebe mais linhas do que o esperado. Apenas este nome de arquivo:

slurm-0.1.-5\nRemember that all constraints must be readded!

fará com que sort receba duas linhas e, em seguida, em sua saída, a linha Remember … será depois da linha slurm-… . Não sei como seus nomes de arquivos slurm-* são exatamente iguais. Eu nem tenho certeza de que isso é o que realmente acontece. Meu ponto é que você não deve analisar a saída de ls .

Outro fragmento fraco é onde você não cita o argumento para nano . Isso provavelmente não está relacionado ao seu problema atual, mas lembre-se de que nano a b faz a edição nano a e, em seguida, b , não "a b" .

    
por 13.08.2017 / 02:15