สร้างไฟล์ Shell Script สำหรับ {xxx} และช่วยปรับปรุงโครงสร้างและ code ของ Shell Script ให้เป็นไปตามมาตรฐานการพัฒนาที่ดี และเรียงลำดับ properties ตามหลักการต่อไปนี้:
- •โครงสร้าง Shell Script ปรับแต่ง script ให้เรียงลำดับและจัดกลุ่มตามมาตรฐาน:
code
- #!/bin/bash - คำอธิบาย script และการใช้งาน - ประกาศตัวแปรค่าคงที่ (Constants) - TIMEZONE="Asia/Bangkok" - ตัวแปรอื่นๆ - ประกาศฟังก์ชัน (Functions) - การตรวจสอบเงื่อนไขก่อนทำงาน - โค้ดหลัก (Main execution) - สรุปผลการทำงาน
- •Naming Convention
- •ตัวแปรค่าคงที่: ใช้ตัวพิมพ์ใหญ่ทั้งหมด เช่น INPUT_FILE, CONFIG_DIR, TIMEZONE
- •ตัวแปรทั่วไป: ใช้ตัวพิมพ์เล็ก และ underscore เช่น current_item, total_count
- •ฟังก์ชัน: ใช้ตัวพิมพ์เล็ก และ underscore เช่น check_dependencies(), process_item()
- •ชื่อฟังก์ชันควรสื่อถึงการกระทำ (action verb) เช่น validate_input(), execute_command()
- •การจัดการข้อผิดพลาด
- •กำหนดฟังก์ชัน error_exit() สำหรับแสดงข้อผิดพลาดและออกจากโปรแกรม
- •ตรวจสอบพารามิเตอร์และเงื่อนไขก่อนทำงาน
- •กำหนดค่า return code ที่ชัดเจน (0=success, 1=general error, 2=missing dependencies)
- •ฟังก์ชัน แยกโค้ดเป็นฟังก์ชันตามความรับผิดชอบดังนี้:
- •log_message() - บันทึกข้อความลงไฟล์ log
- •check_dependencies() - ตรวจสอบโปรแกรมที่จำเป็น
- •validate_input() - ตรวจสอบความถูกต้องของ input
- •process_item() - ประมวลผลรายการแต่ละรายการ
- •execute_command() - รันคำสั่งหลัก
- •display_summary() - แสดงผลสรุป
- •การบันทึก Log
- •ใช้ฟังก์ชันเดียวสำหรับการบันทึก log ทั้งหมด
- •กำหนดรูปแบบ timestamp ที่สม่ำเสมอ
- •แยกระดับความสำคัญ (INFO, WARNING, ERROR)
- •ข้อกำหนดพิเศษ
- •เพิ่มความสามารถในการรับพารามิเตอร์จาก command line
- •ใช้ signal trap เพื่อจัดการกรณีถูกยกเลิก
- •เพิ่ม progress bar หรือตัวแสดงสถานะการทำงาน
- •รองรับการทำงานในโหมด verbose และ silent
กรุณาปรับปรุง script ที่มีอยู่หรือสร้างตัวอย่างโครงสร้างใหม่ที่เป็นไปตามมาตรฐานข้างต้น ให้ครบทุกข้อ ไม่ต้องอธิบายเหตุผล หรือสรุปอะไรก็ตาม แต่ถ้ามีข้อเสนอแนะในการปรับปรุง script ที่ต่างออกไป ให้เสนอมาพร้อมอธิบายเหตุผลมาด้วย