LoginSignup
1
1

More than 1 year has passed since last update.

echo -eオプション

Last updated at Posted at 2021-08-08

はじめて学ぶバイナリ解析を読んでいて
echoコマンドで-eを指定すると
数字で渡したASCIIコードを文字に変換する事が出来ると知った

そもそも、echo コマンドのオプションeは
エスケープシーケンスを解釈するという意味

echoコマンド

echo -e "\x21"
!

エスケープシーケンス

\a

アラート文字(ベル,beep音)を表示します。

echo -e "ALERT\a"
ALERT

\b

バックスペース文字を表示します

echo -e "BACK\b "
BAC

echo -e "BACK\bH"
BACH

\c

\cの後ろに指定した文字は出力されない

echo -e "TEST\cTEST"
TEST

\f

フォームフィード文字(改ページ)

フォームフィードはプリンターで改ページすること
紙送りをして、次の用紙の先頭から印刷すること。 また、そのための制御文字(FF)のこと。

echo -e "TEST\fTEST"
TEST
    TEST

\n

改行文字

echo -e "TEST1\nTEST2"
TEST1
TEST2

echo -e "TEST1\n\nTEST2"
TEST1

TEST2

\r

復帰文字 同じ行の先頭に戻る

echo -e "TEST1\rTEST2"
TEST2

\t

タブ文字

echo -e "TEST1\tTEST2"
TEST1   TEST2

\v

垂直タブ文字
垂直タブ文字を使うと垂直方向的なカーソル移動(タブ挿入)が行われる。

echo -e "TEST1\vTEST2"
TEST1
     TEST2

echo -e "TEST1\v\vTEST2"
TEST1

     TEST2

\0nnn

ASCIIコードがnnn(8進数)の文字。
nnnは0から3個の8進数字
1〜3桁の8進数で表されたASCIIコードの文字(0〜7)

echo -e "\0101"
A

ASCII ⇔ 8進数変換表

0 1 2 3 4 5 6 7
0 NULL SOH STX ETX EOT ENQ ACK BEL
1 BS HT LF VT FF CR SO SI
2 DLE DC1 DC2 DC3 DC4 NAK SYN ETB
3 CAN EM SUB ESC FS GS RS US
4 SP ! " # $ % & '
5 ( ) * + , - . /
6 0 1 2 3 4 5 6 7
7 8 9 : ; < = > ?
10 @ A B C D E F G
11 H I J K L M N O
12 P Q R S T U V W
13 X Y Z [ \ ] ^ _
14 ` a b c d e f g
15 h i j k l m n o
16 p q r s t u v w
17 x y z { | } ~ DEL

\xnn

nnに16進数を表記すると16進数に対応したASCII文字が出力される

echo -e "\x21"
!

ASCII ⇔ 16進数変換表

0 1 2 3 4 5 6 7 8 9 A B C D E F
0 NULL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2 SP ! " # $ % & ' ( ) * + , - . /
3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4 @ A B C D E F G H I J K L M N O
5 P Q R S T U V W X Y Z [ \ ] ^ _
6 ` a b c d e f g h i j k l m n o
7 p q r s t u v w x y z { | } ~ DEL
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1