쉘 스크립트 공부중 달력 만들어 보고잇는데..

nikon의 이미지

c언어에서 했던 순서대로 그대로 쉘에서도 헬로 월드 찍어보고 하나하나 공부하다

이제 만년 달력 만들어 보려고 하는데.

lastDay=(31 0 31 30 31 30 31 31 30 31 30 31)
 
totalDay=0
k=1
i=1
j=1
 
 
echo -n "년도 입력 : "
read inputYear
echo -n " 월  입력 : "
read inputMonth
echo "      $inputYear$inputMonth 월   "
echo "-----------------------------"
echo "  일 월 화 수 목 금 토  "
 
if [ "`expr $inputYear % 4`" -eq 0 -a "`expr $inputYear % 100`" -ne 0 -o "`expr $inputYear % 400`" -eq 0 ]
then
	lastDay[1]=29
else
	lastDay[1]=28
fi
 
totalDay=`expr \( $inputYear - 1 \) \* 365 + \( $inputYear - 1 \) / 4 - \( $inputYear - 1 \) / 100 + \( $inputYear - 1 \) / 400`
 
while [ $k -le `expr $inputMonth - 1` ]
do
	totalDay=`expr $totalDay + ${lastDay[$k - 1]}`
	k=`expr $k + 1`
done
 
h=1
d=0
 
while [ $i -le 6 ]
do
	while [ $j -le 7 ]
	do
		if [ $h -le `expr ${lastDay[$inputMonth - 1]} + 1 + $totalDay % 7` ]
		then
			d=`expr $h - $totalDay % 7`
			if [ `expr $d - 1` -le 0 ]
			then
				echo "   ";
			else
				echo "    `expr $d - 1`"
			fi
		fi
 
	echo ""
	j=`expr $j + 1`
	h=`expr $h + 1`
	done
 
echo ""
i=`expr $i + 1`
done

오류가 뜨네요.. 오류가 하나 떠서 하나 고치면 새로 뜨고 해서 딱히 오류명을 기입하지는 않앗는데요..

잘 못 된 부분이 뭐가있을가요?

c언어에서 짯던형식을 그냥 쉘로 옮겼는데 안되네요 ㅠ

김정균의 이미지

code를 올릴 때는 <code>~</code> block을 이용해 주세요. shell script의 경우에는 <code lang="bash">~</code>와 같이 사용하시면 syntax highlighting이 가능 합니다.

그리고, bash에서 수학식을 `expr expression` 으로 하면 sub shell이 열리니 다음과 같이 사용해 주시는 것이 더 좋습니다.

a=$[ 1 + 1 ]

또는

a=$(( 1 + 1 ))

nikon의 이미지

참고 하겠습니다~

bushi의 이미지

원래의 C 코드가 어떤지 짐작이 가지 않는데요...
bash>=2.0 이상이라면,

...
...
...
h=0
d=0
e=${lastDay[$inputMonth - 1]}
o=$(($totalDay % 7))
 
while ((1));
do
        d=$(($h - $o))
        [ $d -gt $e ] && break
        [ $d -le 0 ] && printf "   " || printf " %2d" $d
        [ $((h % 7)) -eq 6 ] && echo ""
        ((h++))
done
echo ""

그나저나... 올 해 크리스마스가 일요일이네요.
skyjjogari의 이미지

헐 올해 크리스마스가 일요일이라니...........

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.