#!/bin/bash #正規表現を使い、引数が4桁の数字の場合とそうでない時で場合分けする if [[ $1 =~ ^[0-9]{4}$ ]] then #kadai1_dataディレクトリの存在を確認 if [ -e './kadai1_data' ] then #それぞれのファイルで最初に引数に一致した行番号を取り出す number1=`grep -n $1 ./kadai1_data/kadai1_1.txt | head -n 1 | cut -d: -f1` number2=`grep -n $1 ./kadai1_data/kadai1_2.txt | head -n 1 | cut -d: -f1` number3=`grep -n $1 ./kadai1_data/kadai1_3.txt | head -n 1 | cut -d: -f1` number4=`grep -n $1 ./kadai1_data/kadai1_4.txt | head -n 1 | cut -d: -f1` #行番号から桁数を計算する place1=`echo "($number1 * 4)-3" | bc` place2=`echo "($number2 * 4)-2" | bc` place3=`echo "($number3 * 4)-1" | bc` place4=`echo "($number4 * 4) " | bc` #4つの中から最も小さな桁数を取り出す min=1000000 for code in $place1 $place2 $place3 $place4 do if [ $code -lt $min ] then min=$code fi done #見つかれば表示 if [ $min -ge 999998 ] then echo "$1は見つかりませんでした" else echo "$1は円周率の小数点以下$min桁目から始まります" fi else echo 'kadai1_dataディレクトリが存在しません' fi else echo '引数に指定できるのは、4桁の数字のみです' fi