echo {Z..A}; fora {Z..A}; por que? [duplicado]

0

Sou um novo usuário do Ubuntu. Estou lendo este livro "A linha de comando do Linux: uma introdução completa" e praticando o código. Isso é divertido, mas tenho problemas no Capítulo 8:

➜  ~ echo {1..10}
1 2 3 4 5 6 7 8 9 10
➜  ~ echo {z..a}
{z..a}
➜  ~ echo {Z..A}
{Z..A}
➜  ~ echo {a..z}
{a..z}
➜  ~ 

Não consigo obter um intervalo de letras. Por quê? Como faço para corrigir isso? Minha concha é oh-my-zsh.

    
por Scott Ming 15.02.2016 / 01:50

1 resposta

2

Este é um recurso ksh (e bash ) e pode não estar no seu shell, por exemplo, traço (shell padrão usado no Debian / Ubuntu).

Para ver a diferença, tente

bash -c "echo {a..z}"
dash -c "echo {a..z}"

O padrão /bin/sh com o Debian aponta para dash . Mas se você estiver executando em um shell bash, você verá as seqüências expandidas como você espera. Os scripts que iniciam #!/bin/sh usarão dash .

No meu Debian 7, zsh também não expande a sequência. (Eu verifiquei ksh, bash, dash e zsh).

    
por 15.02.2016 / 01:59