![쉘 스크립트를 사용하여 지난 분기, 이번 분기, 다음 분기 등 분기별 정보를 얻는 방법--2017q4, 2018q1, 2018q2 [닫기]](https://linux55.com/image/130698/%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%A7%80%EB%82%9C%20%EB%B6%84%EA%B8%B0%2C%20%EC%9D%B4%EB%B2%88%20%EB%B6%84%EA%B8%B0%2C%20%EB%8B%A4%EC%9D%8C%20%EB%B6%84%EA%B8%B0%20%EB%93%B1%20%EB%B6%84%EA%B8%B0%EB%B3%84%20%EC%A0%95%EB%B3%B4%EB%A5%BC%20%EC%96%BB%EB%8A%94%20%EB%B0%A9%EB%B2%95--2017q4%2C%202018q1%2C%202018q2%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
쉘 스크립트를 사용하여 이전 분기, 이번 분기, 다음 분기 등과 같은 분기별 정보를 얻는 방법도 있습니다. -- 2017q4, 2018q1, 2018q2
답변1
이는 bash를 사용하여 수행됩니다.
declare -i m=$(date +%m)
declare -i cq=($m-1)/3+1
declare -i cy=$(date +%Y)
declare -i py=$cy; [ $m -lt 4 ] && py=$cy-1
declare -i pq=$cq-1; [ $pq -eq 0 ] && pq=4
declare -i ny=$cy; [ $m -gt 9 ] && ny=$cy+1
declare -i nq=$cq+1; [ $nq -gt 4 ] && nq=1
echo ${py}q${pq},${cy}q${cq},${ny}q${nq}
현재 제외: 2018q1, 2018q2, 2018q3
답변2
month=$(date +%m)
quarter=$(( (2 + 10#$month) / 3 ))
데모
for m in {1..12}; do
read y m < <(date -d "2018-$m-1" "+%Y %m")
printf "%s-%s is in q%d\n" "$y" "$m" "$(( (2 + 10#$m) / 3))"
done
2018-01 is in q1
2018-02 is in q1
2018-03 is in q1
2018-04 is in q2
2018-05 is in q2
2018-06 is in q2
2018-07 is in q3
2018-08 is in q3
2018-09 is in q3
2018-10 is in q4
2018-11 is in q4
2018-12 is in q4
10#$month
산술 표현식에서 이를 사용해야 합니다. 그렇지 않으면 "잘못된 8진수" 오류가 08
발생 합니다.09