#!/bin/bash if [ $# -ne 3 ] then echo RGBは3つの引数として入力してください exit fi #まず引数の個数を確認 n10=a n11=b n12=c n13=d n14=e n15=f #変数を定義 for i in `seq 3` #同じ動作を3回繰り返す do if [ $1 -ge 0 -a $1 -le 255 ] #入力された値が0-255であるかの判定 then g=`expr $1 / 16` h=`expr $1 % 16` #割り算で商($g)と余り($h)を求める。 case "$g" in ? ) g2=$g ;; 1? ) eval g2='$n'$g ;; esac #商が0-9ならそのままの値を、10-15なら上記の変数を用いて16進数に変換した値を$g2とする case "$h" in ? ) h2=$h ;; 1? ) eval h2='$n'$h ;; esac #余りについても商と同様の操作を行う eval j$i="$g2$h2" #1周目は引数1を16進数に変換した値を$j1として定義 shift #引数を1つずらす else echo 0から255の値を入力してください exit #エラーメッセージと処理の終了 fi done k='#'$j1$j2$j3 #カラーコードを$kと定義 if ! grep -sq $k 'eurocolor.csv' -o 'jpcolor.csv' -o 'metrocolor.csv' #ファイル内にカラーコードの文字列を含まない場合 then echo $k exit #カラーコードのみを出力して終了 fi if grep -sq $k 'eurocolor.csv' then grep $k 'eurocolor.csv' else echo eurocolor.csv中に対応する色はありません fi if grep -sq $k 'jpcolor.csv' then grep $k 'jpcolor.csv' else echo jpcolor.csv中に対応する色はありません fi if grep -sq $k 'metrocolor.csv' then grep $k 'metrocolor.csv' else echo metrocolor.csv中に対応する色はありません fi #各ファイルのカラーコードと色の名前を出力