ฉันกำลังจะไปกวดวิชาและที่นั่นฉันเจอคำสั่ง:
printf "%(%s)T"
ผลลัพธ์ของคำสั่งนี้คือ:
1454299615
ใครช่วยกรุณาบอกฉันว่าคำสั่งนี้คืออะไรและสิ่งที่ส่งออกหมายถึงอะไร
ฉันกำลังจะไปกวดวิชาและที่นั่นฉันเจอคำสั่ง:
printf "%(%s)T"
ผลลัพธ์ของคำสั่งนี้คือ:
1454299615
ใครช่วยกรุณาบอกฉันว่าคำสั่งนี้คืออะไรและสิ่งที่ส่งออกหมายถึงอะไร
คำตอบ:
printfมันเป็นวิธีการแสดงเวลาการจัดรูปแบบโดย
รูปแบบคือ:
%(FORMAT)T
ที่ไหน FORMATstrftime(3)จะถูกกำหนดโดย
ดังนั้นเพื่อให้ได้เวลายุค (เวลาเป็นวินาทีตั้งแต่ 1970-01-01 00:00:00 UTC) เราต้องจัดstrftime(3)รูปแบบ%s:
printf "%(%s)T\n"
โปรดทราบว่า\nในตอนท้ายคุณจะต้องเพิ่มบรรทัดใหม่เป็นprintf(ไม่เหมือนกัน)echo ) จะไม่เพิ่มตามค่าเริ่มต้น
ตัวอย่าง:
$ printf "%(%s)T\n"
1454300377
$ printf "%(%Y-%m-%d)T\n"
2016-02-01
$ printf "%(%Y-%m-%d %H:%M:%S)T\n"
2016-02-01 10:20:27
เพียงเพื่อความสมบูรณ์คุณยังสามารถใช้dateคำสั่งในstrftime(3)รูปแบบที่คล้ายกันเพื่อให้ได้เวลา:
$ date '+%s'
1454300542
$ date '+%Y-%m-%d' ## Short form: date -I
2016-02-01
$ date '+%Y-%m-%d %H:%M:%S'
2016-02-01 10:22:47
หมายเหตุ : ลักษณะการทำงานนี้เป็นเฉพาะกับbash'และksh' s ในตัวฟังก์ชั่นprintfและไม่ได้ทำงานกับ/usr/bin/printf, cshและzshสร้างอิน
printf(1)หน้าคน
printfเป็น builtin นี่ (แม้ว่าภายนอกหนึ่งมีพฤติกรรมเดียวกัน) .. เช็คhelp printf..
printfเป็นคนในตัวหรือไม่?/usr/bin/printfบน Ubuntu 14.04printf: %(: invalid conversion specificationจะช่วยให้ข้อผิดพลาด:bashหากคุณกำลังใช้ ลองใช้man bashเอกสารประกอบในตัว