GNU/Linux >> Linux の 問題 >  >> Linux

In Echo {a..z}では特殊文字は何を表していますか?

echoを使用して、アルファベットの文字のシーケンスを印刷できることを知っています コマンドを実行し、これを実行して少し実験しました。

小文字のシーケンス

$ 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

大文字のシーケンス

$ 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

大文字と小文字のシーケンス

$ 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

今、これは私が得られない部分です。 special charcatersを参照してください Zからaへ。これがより良いビューです。

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

知りたい

  1. これらの特殊文字が大文字と小文字の間にどのように登場したのですか?

  2. これらの特殊文字シーケンスはどういう意味ですか?

  3. また、このシーケンスを中間にのみ印刷するにはどうすればよいですか?

承認された回答:

{A..z} 現在のロケールの文字エンコードに従って展開します。これはおそらくASCIIまたはそれに近いものです。 man asciiを実行する場合 (システムにこれがある場合)またはASCIIテーブルを見ると、Zの間にこれらの追加の文字が表示されます。 およびaecho {Z..a}を実行した場合と同じです 実際に)。

大文字/小文字だけを取得するには、

を使用します
echo {A..Z} {a..z}

中間のものだけを取得するには、

を使用できます。
typeset -a foo=($(echo {Z..a}))
echo ${foo[@]:1:((${#foo[@]} - 2))}

これは最初に含む配列を作成します 境界のすぐ外側にある2つの文字は、以外のすべての配列要素にアクセスします。 境界文字。

PS:typeset -a foo=({Z..a})の理由を理解する 動作しないものは、読者の練習問題として残されています🙂


Linux
  1. クラウドホスティングプロバイダーで何を探すべきか

  2. kworker スレッドの起源

  3. Bashでの$#の使用は何ですか

  1. シェルドットファイルでできること

  2. Linux シェル wc -c カウント文字数 +1

  3. echo $ とは何ですか?行う?

  1. .bashrcの「rc」は何の略ですか?

  2. Etcは何の略ですか?

  3. 期待スクリプトで使用するために特殊文字でパスワードを変換しますか?