Giúp đỡ sửa code bash shell

Đề bài là:Viết chương trình cho biết tên năm âm lịch của một năm dương lịch cho trước. Yêu cầu chương trình nhận năm dương lịch tại dòng lệnh.
Ví dụ:
$lunar_year 2004
Giap Than
$lunar_year 2007
Dinh hoi
$lunar_year 2013
Quy ty
Hướng dẫn: Năm âm lịch gồm Can và Chi
• Can(10): Giáp,Ất,Bính,Đinh,Mậu,Kỷ, Canh,Tân, Nhâm,Quý
• Chi (12): Tý, Sửu… Tuất, Hợi.
Mỗi năm Can tăng thêm 1, Chi tăng thêm 1. cho biết 2016 là Bính thân.

Câu hỏi:
Em đã biết cách làm nhưng mà không biết cách làm sao để in ra được như VD. Em mới học nên nhờ các anh giúp. Em cảm ơn

read a
can=expr $a % 10
case $can in
0)echo “canh ”;;
1)echo “Tan ”;;

9)echo”Nham”;;
esac
chi=expr $a % 12
case $chi in
0)echo”than”;;
1)echo”dau”;;

11)echo”mui”;;
esac

  • Format lại code. Thêm 3 dấu ` vào đầu và cuối đoạn code.
  • Hình như bash shell có phân biệt hoa thường -> case và esac không được viết hoa.
  • Ở dòng gán chi, sau dấu % phải có dấu cách.

Em cảm ơn anh. cái này em viết vội nên nó sai. chứ e chỉnh và chạy trong bài làm rồi. Em hỏi phương pháp để in ra được theo ví dụ ạ

Bạn dùng 1 biến khác lưu lại string can và string chi. Khi in ra thì ghép 2 xâu. Kiểu như:

case $can in
0) $str_can = "Canh ";;
...
esac

case $chi in
0) $str_chi = "than";;
...
esac

echo $str_can + $str_chi #hình như ở đây không có dấu + vẫn được

Vì echo là in ra có dấu xuống dòng nên khi muốn in 2 xâu mà không muốn xuống dòng thì ta gán vào 2 biến rồi in ra cả 2 xâu.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?