#!/bin/bash # 4桁の数字でなかった場合はその旨が表示されます。 if [ ${#1} != 4 ] then echo "おや?どうやらあなたの入力した数字は4桁ではないようだ。" exit 1 fi # 読み込んだ4桁の数字を4分割します a=`echo "$1" | cut -c 1` b=`echo "$1" | cut -c 2` c=`echo "$1" | cut -c 3` d=`echo "$1" | cut -c 4` # すでに存在しているquiz2.txtをクリアします。 if test -e quiz2.txt ; then cat /dev/null >quiz2.txt fi # 括弧の付け方で場合わけしていきます。 # 1. abcd for i in + - '*' do for j in + - '*' do for k in + - '*' do answer=`expr $a "$i" $b "$j" $c "$k" $d` if [ $answer -eq 10 ] then echo "$a $i $b $j $c $k $d" > quiz2.txt fi done done done # 2.(ab)cd for i in + - '*' do for j in + - '*' do for k in + - '*' do answer=`expr \( $a "$i" $b \) "$j" $c "$k" $d` if [ $answer -eq 10 ] then echo "($a $i $b) $j $c $k $d" >> quiz2.txt fi done done done # 3.a(bc)d for i in + - '*' do for j in + - '*' do for k in + - '*' do answer=`expr $a "$i" \( $b "$j" $c \) "$k" $d` if [ $answer -eq 10 ] then echo "$a $i ($b $j $c) $k $d" >> quiz2.txt fi done done done # 4.ab(cd) for i in + - '*' do for j in + - '*' do for k in + - '*' do answear=`expr $a "$i" $b "$j" \( $c "$k" $d \)` if [ $answer -eq 10 ] then echo "$a $i $b $j ($c $k $d)" >> quiz2.txt fi done done done # 5.(abc)d for i in + - '*' do for j in + - '*' do for k in + - '*' do answer=`expr \( $a "$i" $b "$j" $c \) "$k" $d` if [ $answer -eq 10 ] then echo "($a $i $b $j $c) $k $d" >> quiz2.txt fi done done done # 6.a(bcd) for i in + - '*' do for j in + - '*' do for k in + - '*' do answer=`expr $a "$i" \( $b "$j" $c "$k" $d \)` if [ $answer -eq 10 ] then echo "$a $i ($b $j $c $k $d)" >> quiz2.txt fi done done done # 7.((ab)c)d for i in + - '*' do for j in + - '*' do for k in + - '*' do answer=`expr \( \( $a "$i" $b \) "$j" $c \) "$k" $d` if [ $answer -eq 10 ] then echo "(($a $i $b) $j $c) $k $d" >> quiz2.txt fi done done done # 8.(a(bc))d for i in + - '*' do for j in + - '*' do for k in + - '*' do answer=`expr \( $a "$i" \( $b "$j" $c \) \) "$k" $d` if [ $answer -eq 10 ] then echo "($a $i ($b $j $c)) $k $d" >> quiz2.txt fi done done done # 9.a((bc)d) for i in + - '*' do for j in + - '*' do for k in + - '*' do answer=`expr $a "$i" \( \( $b "$j" $c \) "$k" $d \)` if [ $answer -eq 10 ] then echo "$a $i (($b $j $c) $k $d)" >> quiz2.txt fi done done done # 10.a(b(cd)) for i in + - '*' do for j in + - '*' do for k in + - '*' do answer=`expr $a "$i" \( $b "$j" \( $c "$k" $d \) \)` if [ $answer -eq 10 ] then echo "$a $i ($b $j ($c $k $d))" >> quiz2.txt fi done done done # 11.(ab)(cd) for i in + - '*' do for j in + - '*' do for k in + - '*' do answer=`expr \( $a "$i" $b \) "$j" \( $c "$k" $d \)` if [ $answer -eq 10 ] then echo "($a $i $b) $j ($c $k $d)" >> quiz2.txt fi done done done # 10を作れない場合はその旨が表示されます。 if [ -s quiz2.txt ] then cat quiz2.txt else echo "善戦実らず・・・10を作ることができませんでした。" fi