Section Next | Prev


007 esc - エスケープ文字表示サンプル

概要
VT100準拠のエスケープシーケンス表示サンプル。

スクリプトと解説 - [text]
#スクリプト解説
1#! /bin/bash #
2#@(#) VT Escape sequence test tool #
3 #
4# how to use #
5usage() ヘルプ表示用関数定義
6{ #
7cat <<EOD #
8$0 [-urc][-f foreground][-b background] any strings #
9 -u under line #
10 -r riverce #
11 -c clear ESC sequence and screen #
12 -f/b colorname #
13 colorname: #
14        `esc -b white -f black 0, kuro, black` 自分自身を呼び出し例題を表示
15        `esc -b white -f red 1, aka, red` #
16        `esc -b white -f green 2, midori, green` #
17        `esc -b white -f blue 4, ao, blue` #
18        `esc -b white -f purple 5, murasaki, purple, violet` #
19        `esc -b white -f cyan 6, mizu, cyan` #
20        `esc -b black -f white 7, shiro, white` #
21EOD #
22 exit 0 #
23} #
24 #
25# convert color nmae to code #
26color2seq() 色名を解析し、色コードに変換する関数
27{ #
28        color=`echo $1|tr A-Z a-z` 大文字を小文字に変換
29        case $color in 色名を解析
30        0|kuro|black) echo 0;; 0, kuro, または black の場合、コード 0 を返す
31        1|aka|red) echo 1;; #
32        2|midori|green) echo 2;; #
33        3|ki|yellow) echo 3;; #
34        4|ao|blue) echo 4;; #
35        5|murasaki|purple|violet) echo 5;; #
36        6|mizu|cyan) echo 6;; #
37        7|siro|shiro|white) echo 7;; #
38        esac #
39} #
40 #
41# preset escape sequence 変数(シーケンス)の初期設定
42seqS='\033[' 8進数で033は<ESC>
43seq0="" #
44seq1="30" #
45seq2="47" #
46seqE='\033[0m' リセット用シーケンス
47 #
48## option analize #
49while getopts :curhf:b: n オプション処理、引数の -x を処理
f: は -f xxx というように引数を伴うオプション
50do #
51        case $n in #
52        b) seq2="4`color2seq $OPTARG`" ;; #
53        c) echo $seqE; clear; exit 0;; #
54        f) seq1="3`color2seq $OPTARG`" ;; #
55        r) seq0="${seq0}7;" ;; #
56        u) seq0="${seq0}4;" ;; #
57        h|?) usage ;; #
58        esac #
59done #
60let argc=OPTIND-1 #
61shift $argc #
62 #
63# print arguments with rendering #
64echo -e "$seqS$seq0$seq1;${seq2}m$*$seqE" #

実行例

Section Next | Prev