#!/bin/bash # obj-oriented.sh: ½© ½ºÅ©¸³Æ®¿¡¼ °´Ã¼ ÁöÇâÀû ÇÁ·Î±×·¡¹Ö Çϱâ. # Stephane Chazelas ÀÛ¼º. person.new() # C++ ÀÇ Å¬·¡½º ¼±¾ðó·³ º¸ÀÔ´Ï´Ù. { local obj_name=$1 name=$2 firstname=$3 birthdate=$4 eval "$obj_name.set_name() { eval \"$obj_name.get_name() { echo \$1 }\" }" eval "$obj_name.set_firstname() { eval \"$obj_name.get_firstname() { echo \$1 }\" }" eval "$obj_name.set_birthdate() { eval \"$obj_name.get_birthdate() { echo \$1 }\" eval \"$obj_name.show_birthdate() { echo \$(date -d \"1/1/1970 0:0:\$1 GMT\") }\" eval \"$obj_name.get_age() { echo \$(( (\$(date +%s) - \$1) / 3600 / 24 / 365 )) }\" }" $obj_name.set_name $name $obj_name.set_firstname $firstname $obj_name.set_birthdate $birthdate } echo person.new self Bozeman Bozo 101272413 # "person.new" ÀνºÅϽº »ý¼º(½ÇÁ¦·Î´Â ÀÎÀÚ¸¦ ÇÔ¼ö·Î ³Ñ±â´Â °ÍÀÓ). self.get_firstname # Bozo self.get_name # Bozeman self.get_age # 28 self.get_birthdate # 101272413 self.show_birthdate # Sat Mar 17 20:13:33 MST 1973 echo # »ý¼ºµÈ ÇÔ¼ö¸¦ º¸·Á¸é # typeset -f # ¶ó°í ÇØ º¸¼¼¿ä(ȸéÀÌ ÁÖ·ç·è ¿Ã¶ó°¡´Ï±î Á¶½ÉÇϼ¼¿ä). exit 0