May 21, 2011

Bash printf command

    ใน Bash Shell คำสั่ง printf ยังมีประโยชน์กับเราในการเขียน shell script
เพื่อแสดงผลเป็นอย่างมากเหมือนกัน อย่างเช่นในการ list menu หรือ
การ report ค่าอะไรบางอย่าง จำเป็นต้องกำหนดความกว้างของ field
หรือ field  width เพราะจะทำให้เรียงลำดับได้สวยงามและดูง่าย

กำหนดความกว้างหรือ field width ได้โดย ใช้ Format Strings (%) เช่น

printf "%50s\n" "This field is 50 characters wide..."
แต่ถ้าใช้ - ร่วมกับตัวเลข จะทำให้ String จะชิดไปทางด้านซ้ายของ field เช่น
printf "%-50s\n" "This field is 50 characters wide..."

สามารถทำเป็นตาราง โดยกำหนดขนาดแต่ละ field ได้ เช่น
printf "%-10s" "ID" ;printf "%-20s" "Name" ;printf "%-15s" "Phone No." ;printf "%-5s\n" "Status" ;
จะได้ผลลัพธ์ดังนี้
ID        Name                Phone No.      Status
ว่าแต่ ถ้าจำนวนตัวอักษรใหญ่กว่า field  ขนาดของ field จะขยายออกไป
แต่ถ้าไม่ให้ขยายออกไปใช้ . เช่น
$ printf "%.10s" "TTTTTTTTTTTTTTTTT"; printf "%-20s\n" "bbbbbbbbbbbbbbbbbbbbb"
TTTTTTTTTTbbbbbbbbbbbbbbbbbbbbb
อักษรที่เกิน field ไปจะถูกตัดทิ้ง

No comments:

Post a Comment