Open hirosi1900day opened 1 year ago
問題1の解答例
#!/bin/bash
if [ $# -ne 2 ];
then
exit 1;
fi
gender=$1;
age=$2;
if [ $age -lt 0 ];
then
exit 1;
fi
if [ $gender = 'man' ];
then
if [ $age -lt 20 ];
then
echo 'Man:Child';
elif [ $age -lt 60 ];
then
echo 'Man:Adult';
else
echo 'Man:Elderly';
fi
elif [ $gender = 'woman' ];
then
if [ $age -lt 20 ];
then
echo 'Woman:Child';
elif [ $age -lt 60 ];
then
echo 'Woman:Adult';
else
echo 'Woman:Elderly';
fi
問題3解答例
#!/bin/bash
read -p 'ファイル名を入力してください: ' fh
if [ -f $fh ];
then
read -p 'sum, avg, min, max, exit' command
if [ $command = 'sum' ];
then
sum=0
while read p;
do
sum=$(( sum + p ))
done < $fh
echo SUM: $sum
exit 0
elif [ $command = 'avg' ];
then
sum=0
count=0
while read p;
do
sum=$(( sum + p ))
count=$(( count + 1 ))
done < $fh
echo AVG: $(( sum / count ))
exit 0
elif [ $command = 'min' ];
then
min=101
while read p;
do
if [ $min -gt $p ];
then
min=$p
fi
done < $fh
echo MIN: $min
exit 0
elif [ $command = 'max' ];
then
max=0
while read p;
do
if [ $max -lt $p ];
then
max=$p
fi
done < $fh
echo MAX: $max
exit 0
elif [ $command = 'exit' ];
then
exit 0
else
echo 'そのようなコマンドは存在しません'
exit 1
fi
else
echo 'ファイルが存在しません'
exit 1
fi
問題2のヒント
#!/bin/bash
ls
read -p 'ファイル名を入力してください: ' file_name
read -p 'ファイルに追記する値を入力してください: ' input_val
if [ ファイルが存在するかの判定 ];
then
ファイルに追加処理を行う
else
echo 'ファイルが存在しません';
fi
問題5
#!/bin/bash
if [ $# -ne 1 ];
then
echo 'argument is wrong'
exit 1
fi
function stop_exam7(){
rm exam7.lock
exit 0
}
if [ $1 = 'start' ];
then
if [ -f 'exam7.lock' ];
then
echo 'Process is already running'
exit 0
else
echo $$ > exam7.lock
trap "stop_exam7" 2 15
for i in `seq 1 1000`;
do
echo $i >> output_$$.txt
sleep 1
done
rm exam7.lock
exit 0
fi
elif [ $1 = 'stop' ];
then
if [ -f 'exam7.lock' ];
then
PID=-1
while read p;
do
PID=$p
done < 'exam7.lock'
kill -15 $PID
else
echo 'process is not running'
exit 0
fi
elif [ $1 = 'status' ];
then
if [ -f 'exam7.lock' ];
then
PID=-1
while read p;
do
PID=$p
done < 'exam7.lock'
echo Process is running pid=$PID
else
echo 'Process is not running'
fi
else
echo 'wrong argument'
exit 1
fi
1問目
2問目
3問目
4問目
5問目
6問目