GNU/Linux >> Linux Esercitazione >  >> Linux

Cosa rappresentano i personaggi speciali in Echo {a..z}?

So che possiamo stampare una sequenza di lettere dell'alfabeto usando echo comando e l'ho sperimentato un po' in questo modo.

Sequenza di lettere minuscole

$ echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z

Sequenza di lettere maiuscole

$ echo {A..Z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Sequenza di lettere maiuscole e minuscole

$ echo {A..z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [  ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z

Ora questa è la parte che non ottengo. Vedi i special charcaters dalla Z alla a. Ecco una visione migliore.

$ echo {a..Z}
a ` _ ^ ]  [ Z

Voglio sapere

  1. Come sono arrivati ​​questi caratteri speciali tra lettere maiuscole e minuscole?

  2. Cosa significano queste sequenze di caratteri speciali?

  3. Inoltre, come faccio a stampare questa sequenza solo nel mezzo?

Risposta accettata:

{A..z} si espande in base alla codifica dei caratteri della locale corrente, che molto probabilmente è ASCII o qualcosa di simile. Se esegui man ascii (nel caso tu lo abbia sul tuo sistema) o dai un'occhiata a una tabella ASCII vedrai questi caratteri aggiuntivi tra Z e a (lo stesso che ottieni quando esegui echo {Z..a} effettivamente).

Per ottenere solo caratteri maiuscoli/minuscoli usa

echo {A..Z} {a..z}

Per ottenere solo quelli intermedi puoi usare

typeset -a foo=($(echo {Z..a}))
echo ${foo[@]:1:((${#foo[@]} - 2))}

che crea prima un array compreso i due caratteri appena fuori dal confine e quindi accede a tutti gli elementi dell'array oltre i caratteri di confine.

PS:capire perché typeset -a foo=({Z..a}) non funziona è lasciato come esercizio al lettore 🙂


Linux
  1. Cosa può fare per te un file dot di shell

  2. Tr Analog per i caratteri Unicode?

  3. Che cosa significa "rc" in .bashrc?

  4. Verificare la validità dell'IP

  5. Cosa significa echo $? fare?

Che cosa significa "tty"?

Mostra caratteri speciali nascosti in Vim

SystemD - A cosa serve SystemD?

Origine di un thread kworker

Qual è l'uso di $# in Bash

linux shell wc -c conta caratteri +1