정보
-
업무명 : Shell Script를 이용한 Bingo 함수 버전, 재귀 처리, 숫자 야구
-
작성자 : 이상호
-
작성일 : 2020-10-18
-
설 명 :
-
수정이력 :
내용
[개요]
-
안녕하세요? 웹 개발 및 연구 개발을 담당하고 있는 해솔입니다.
-
다년간 축적된 경험 (기상학 학술 보고서 및 국/영문 학술 논문 게재, 블로그 운영, IT 회사 웹 개발 담당) 및 노하우를 바탕으로 개개인에게 맞춤형 솔루션을 수행할 수 있습니다.
-
특히 재능 플랫폼 (크몽, 오투잡, 해피캠퍼스, 레포트 월드)에서 누구보다도 경쟁력 있는 가격으로 양질의 서비스를 제공하고 있습니다.
-
아스키 형식의 텍스트 (text) 파일부터 과학자료 형식 (HDF, H5, NetCDF, Grib, Grb) 및 Data Base (DB) 자료까지 다양한 형태의 자료를 이용하여 수집, 전처리, 분석, 시각화해 드립니다.
-
또한 웹 사이트에 대한 정보를 이용한 웹 크롤링 및 그에 따른 엑셀 및 DB 구축도 가능합니다.
-
아울러 기초 통계 (빈도분포, Prired t-test, Wilcoxn 등)에서 지도/비지도 학습을 통한 회귀모형 구축에 이르기 까지 효율적인 통계 정보를 제공합니다.
-
최근 대한민국의 후속위성인 천리안위성 2A호 웹 서비스 서브시스템 및 환경위성 2B호 통합 자료처리 서브시스템에 대한 웹 개발을 수행하였습니다.
-
-
그리고 해솔 블로그에서는 다양한 기상학/천문학 정보와 더불어 사무 자동화/프로그래밍 언어를 소개하오니 방문 부탁드립니다.
-
좋은 하루 보내세요.
[재능플랫폼] 오투잡
[재능플랫폼] 크몽
요청
[세부 사항]
-
과제6: Bingo - 함수 버전
-
연습과제: 재귀적 destroy를 응용하여 지정된 디렉토리 아래에 있는 전체 파일들 개수를 출력하는 스크립트를 짠다 (지정된 디렉토리는 week10).
-
숫자 야구
-
조건 : 0 or 1의 임의 난수를 계속 생성하고, 키보드 입력으로부터 0.1의 숫자를 입력받아 일치하면 "Strike" 아니면 Ball를 출력
-
Strike or Ball 여부를 키보드로부터 입력받은 수를 인수로 하여 함수 실행
-
종료조건 3 Strike 라면 Out, 4 Ball일시 Win 출력시키고 프로그램을 종료한다.
-
완료
[사용 OS]
-
Linux (CentOS v7.3)
[사용 언어]
-
Shell Script
[명세]
-
Bingo 함수
-
read를 통해 argsInputVal 입력 받기
-
해당 입력 파라미터를 통해 함수 (fnBingo) 실행
-
#!/bin/bash
#========================================================
# Bingo 함수 버전
#========================================================
fnArgsNumberValid() {
local argsVal=$1
if [ $argsVal -lt 1 ]; then
echo "Lower than"
return 0
fi
if [ $argsVal -gt 1 ]; then
echo "Higher than"
return 0
fi
echo "Bingo!"
return 1
}
fnBingo() {
local argsNumber=$#
if [ $argsNumber -ne 1 ]; then
echo "args is Null"
exit 1
fi
local argsVal=$1
while :
do
fnArgsNumberValid $argsVal
local result=$?
# echo $result
if [ $result -eq 1 ]; then
break
fi
read argsInputVal
fnBingo $argsInputVal
done
exit 0
}
# read argsInputVal
# fnBingo $argsInputVal
-
재귀적 destroy
#==========================================================
# 재귀적 destroy 이용
#==========================================================
destroy1() {
local argsNumber=$#
if [ $argsNumber -ne 1 ]; then
echo "args is Null"
exit 1
fi
local argsVal=$1
if [ -d $argsVal ]; then
local list=$(ls $argsVal/*)
for file in $list
do
((num = $num + 1))
# echo $file $num
done
echo $num
fi
}
# num=0
# source=./week10
# destroy1 $source
-
숫자 야구
#==========================================================
# 숫자 야구
#==========================================================
fnBaseBallGame() {
local argsNumber=$#
if [ $argsNumber -ne 1 ]; then
echo "args is Null"
exit 1
fi
local argsVal=$1
while :
do
randomNum=$((RANDOM%2))
if [ $argsVal -eq 0 ] || [ $argsVal -eq 1 ]; then
if [ $randomNum -eq $argsVal ]; then
echo "Strike"
iStrikeCount=$(($iStrikeCount + 1))
else
echo "Ball"
iBallCount=$(($iBallCount + 1))
fi
fi
# echo $randomNum $argsInputNum $iStrikeCount $iBallCount
if [ $iStrikeCount -eq 3 ]; then
echo "Out"
break
fi
if [ $iBallCount -eq 4 ]; then
echo "Win"
break
fi
read argsInputVal
fnBaseBallGame $argsInputVal
done
exit 0
}
iStrikeCount=0
iBallCount=0
read argsInputVal
fnBaseBallGame $argsInputVal
[소스 코드]
#!/bin/bash
#========================================================
# Bingo 함수 버전
#========================================================
fnArgsNumberValid() {
local argsVal=$1
if [ $argsVal -lt 1 ]; then
echo "Lower than"
return 0
fi
if [ $argsVal -gt 1 ]; then
echo "Higher than"
return 0
fi
echo "Bingo!"
return 1
}
fnBingo() {
local argsNumber=$#
if [ $argsNumber -ne 1 ]; then
echo "args is Null"
exit 1
fi
local argsVal=$1
while :
do
fnArgsNumberValid $argsVal
local result=$?
# echo $result
if [ $result -eq 1 ]; then
break
fi
read argsInputVal
fnBingo $argsInputVal
done
exit 0
}
# read argsInputVal
# fnBingo $argsInputVal
#==========================================================
# 재귀적 destroy 이용
#==========================================================
destroy1() {
local argsNumber=$#
if [ $argsNumber -ne 1 ]; then
echo "args is Null"
exit 1
fi
local argsVal=$1
if [ -d $argsVal ]; then
local list=$(ls $argsVal/*)
for file in $list
do
((num = $num + 1))
# echo $file $num
done
echo $num
fi
}
# num=0
# source=./week10
# destroy1 $source
#==========================================================
# 숫자 야구
#==========================================================
fnBaseBallGame() {
local argsNumber=$#
if [ $argsNumber -ne 1 ]; then
echo "args is Null"
exit 1
fi
local argsVal=$1
while :
do
randomNum=$((RANDOM%2))
if [ $argsVal -eq 0 ] || [ $argsVal -eq 1 ]; then
if [ $randomNum -eq $argsVal ]; then
echo "Strike"
iStrikeCount=$(($iStrikeCount + 1))
else
echo "Ball"
iBallCount=$(($iBallCount + 1))
fi
fi
# echo $randomNum $argsInputNum $iStrikeCount $iBallCount
if [ $iStrikeCount -eq 3 ]; then
echo "Out"
break
fi
if [ $iBallCount -eq 4 ]; then
echo "Win"
break
fi
read argsInputVal
fnBaseBallGame $argsInputVal
done
exit 0
}
iStrikeCount=0
iBallCount=0
read argsInputVal
fnBaseBallGame $argsInputVal
[결과물]
-
결과 보고서
참고 문헌
[논문]
- 없음
[보고서]
- 없음
[URL]
- 없음
문의사항
[기상학/프로그래밍 언어]
- sangho.lee.1990@gmail.com
[해양학/천문학/빅데이터]
- saimang0804@gmail.com
'자기계발 > 재능상품' 카테고리의 다른 글
[재능상품] R을 이용한 부트스트랩 방법을 이용한 표본 평균 및 히스토그램 가시화 (0) | 2020.10.18 |
---|---|
[재능상품] R을 이용한 프로그래밍 과제 (0) | 2020.10.18 |
[재능상품] R을 이용한 점수 변화 그래프 및 바람 장미 시각화 (0) | 2020.10.12 |
[재능상품] 통계 보고서 해석 (0) | 2020.10.11 |
[재능상품] 오투잡/크몽 통계 분석, 데이터 분석, 시각화 (0) | 2020.06.30 |
최근댓글