#!/bin/bash echo R=? #R=?と表示 read R #Rを読み込む while [ $R -lt 0 -o $R -gt 255 ] #Rの値が0より小さいまたは255より大きい時にdoとdoneの間に書かれたコマンドを繰り返し実行する do echo "0~255の整数を再入力してください。" #"0~255の整数を再入力してください。"と表示する echo R=? #R=?と表示 read R #Rを読み込む done echo G=? #G=?と表示 read G #Gを読み込む while [ $G -lt 0 -o $G -gt 255 ] #Gの値が0より小さいまたは255より大きい時にdoとdoneの間に書かれたコマンドを繰り返し実行する do echo "0~255の整数を再入力してください。" #"0~255の整数を再入力してください。"と表示する echo G=? #G=?と表示 read G #Gを読み込む done echo B=? #B=?と表示する read B #Bを読み込む while [ $B -lt 0 -o $B -gt 255 ] #Bの値が0より小さいまたは255より大きい時にdoとdoneの間に書かれたコマンドを繰り返し実行する do echo "0~255の整数を再入力してください。" #"0~255の整数を再入力してください。"と表示する echo B=? #B=?と表示 read B #Bを読み込む done h=`expr $R / 16` #$R/16の計算結果をhとおく i=`expr $R % 16` #$R%16の計算結果をiとおく if [ $? -eq 2 ] then echo 整数を入力してやり直してください exit else : fi #入力値が小数の場合、エラー処理をする j=`expr $G / 16` #$G/16の計算結果をjとおく k=`expr $G % 16` #$G%16の計算結果をkとおく if [ $? -eq 2 ] then echo 整数を入力してやり直してください exit else : fi #入力値が小数の場合、エラー処理をする l=`expr $B / 16` #$B/16の計算結果をlとおく m=`expr $B % 16` #$B%16の計算結果をmとおく if [ $? -eq 2 ] then echo 整数を入力してやり直してください exit else : fi #入力値が小数の場合、エラー処理をする echo "#$h $i $j $k $l $m" > 10.txt ; sed -e 's/10/a/g' -e 's/11/b/g' -e 's/12/c/g' -e 's/13/d/g' -e 's/14/e/g' -e 's/15/f/g' 10.txt > 11.txt ; tr -d ' ' < 11.txt > 12.txt #"#$h $i $j $k $l $m"を10.txtに出力する。そのあと10.txt内の文字列の10をaに,11をbに,12をcに,13をdに,14をeに,15をfに変換し11.txtに出力する。そのあと11.txt内の空白を削除して12.txtに出力する grep `cat 12.txt` eurocolor.csv #12.txt内にある文字列を含むeurocolor.csvの行を探す if [ $? -eq 0 ] #上のコマンドの戻り値が0ならば何もせず、0でないならばeurocolor.csv中に対応する色はありません.と表示する then : else echo eurocolor.csv中に対応する色はありません. fi grep `cat 12.txt` jpcolor.csv #12.txt内にある文字列を含むjpcolor.csvの行を探す if [ $? -eq 0 ] #上のコマンドの戻り値が0ならば何もせず、0でないならばjpcolor.csv中に対応する色 はありません.と表示する then : else echo jpcolor.csv中に対応する色はありません. fi grep `cat 12.txt` metrocolor.csv #12.txt内にある文字列を含むmetrocolor.csvの行を探す if [ $? -eq 0 ] #上のコマンドの戻り値が0ならば何もせず、0でないならばmetrocolor.csv中に対応する色はありません.と表示する then : else echo metrocolor.csv中に対応する色はありません. fi rm 10.txt 11.txt 12.txt