Bash 中括号扩展字符中的不寻常字符

Bash 中括号扩展字符中的不寻常字符

我出于某种目的生成了随机字符。我错误地在终端中尝试了以下操作,得到了一些令人惊讶的结果。我使用的是bashUbuntu 提供的 shell。

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

受此结果启发,我做到了

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

[ ] ^ _ `我的问题是这五个字符在范围内做什么。它们有什么特殊含义吗?还是我只是在执行一些被禁止的操作。

人们通常使用$ echo {{A..Z},{a..z}}为了获得小写和大写字符,

答案1

看一下 ascii 表。大写字母 Z 后面就是你得到的那些字符,所以毫不奇怪 - bash 从你告诉它的位置读取 ascii 表,直到你告诉它的位置。\但是没有显示,因为它通常用于转义序列,例如\n- 换行符

在此处输入图片描述

相关内容