新納です。BASH の追加の宿題です。


(追加問題1)

引数として与えた整数値が偶数か奇数か判断するスクリプトを作成せよ。

> tuika1.sh 10
even

> tuika1.sh 11
odd


(解答例)

#!/bin/bash

a=$1
c=$(( a%2 ))
if [ $c -eq 0 ]; then
    echo "even"
else
    echo "odd"
fi

(追加問題2)

引数として与えた 255 以下の整数値を2進数で表示せよ。つまり8桁以下。
表示の方式は問わない。256 以上の整数値が入力されたときは
エラーを表示せよ。配列を使えれば使うこと。繰り返しの命令は使わなくて良い。

> tuika2.sh 123
0 1 1 1 1 0 1 1

> tuika2.sh 257
Error 257 > 255


(解答例)

#!/bin/bash

a=$1
if [ $a -ge 256 ]; then
        echo "Error $1 > 255"
else
        ary[7]=$(( a%2 ))
        a=$(( a/2 ))
        ary[6]=$(( a%2 ))
        a=$(( a/2 ))
        ary[5]=$(( a%2 ))
        a=$(( a/2 ))
        ary[4]=$(( a%2 ))
        a=$(( a/2 ))
        ary[3]=$(( a%2 ))
        a=$(( a/2 ))
        ary[2]=$(( a%2 ))
        a=$(( a/2 ))
        ary[1]=$(( a%2 ))
        a=$(( a/2 ))
        ary[0]=$(( a%2 ))
        echo ${ary[@]}
fi