Section Next | Prev


008 scale - スケールの表示

概要
1行の文字数を見やすくするためのスケール(ルーラ)の表示

スクリプトと解説 - [text]
#スクリプト解説
1#! /bin/bash #
2# Print column scale #
3n=1 # 変数の初期化
4m=1 #
5while (( $n <= $1 )) # 引数で指定した数値までループ
6do #
7        case $n in # カウンタ(n)を評価
8        *5)        echo -n "+" ;; # 下一桁が 5 の時、+ を表示
9        *0)        echo -n $m # 下一桁が 0 の時
10                let m=m+1 # 10の桁を計算し、その値を表示
11                if (( $m>9 ));then # カウンタが3桁になる場合は、
12                        m=0 # 0にリセット
13                fi #
14                ;; #
15        *)        echo -n "." ;; # 上記(下一桁0,5)以外は、. を表示
16        esac #
17        let n=n+1 # カウンタを更新(1加算)
18done #
19echo "" #

実行例
$ scale 50
....+....1....+....2....+....3....+....4....+....5
$ scale 120
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+....0....+....1....+....2

for を使った例 - [text2]
#スクリプト解説
1#! /bin/bash #
2# @(#) print column scale #
3m=1 #
4for ((n=1;n<=$1;n++)) # for文を使い、1から第1引数の値までを繰り返し
5do #
6        case $n in #
7        *5)        echo -n "+" ;; #
8        *0)        echo -n $m #
9                let m=m+1 #
10                if ((m>9)); then # 数値比較の省略記法
11                        m=0 #
12                fi #
13                ;; #
14        *)        echo -n "." ;; #
15        esac # for文内で増分値を指定しているため、加算式は不要
16done #
17echo "" #


Section Next | Prev