ฉันกำลังจะไปกวดวิชาและที่นั่นฉันเจอคำสั่ง:
printf "%(%s)T"
ผลลัพธ์ของคำสั่งนี้คือ:
1454299615
ใครช่วยกรุณาบอกฉันว่าคำสั่งนี้คืออะไรและสิ่งที่ส่งออกหมายถึงอะไร
ฉันกำลังจะไปกวดวิชาและที่นั่นฉันเจอคำสั่ง:
printf "%(%s)T"
ผลลัพธ์ของคำสั่งนี้คือ:
1454299615
ใครช่วยกรุณาบอกฉันว่าคำสั่งนี้คืออะไรและสิ่งที่ส่งออกหมายถึงอะไร
คำตอบ:
printf
มันเป็นวิธีการแสดงเวลาการจัดรูปแบบโดย
รูปแบบคือ:
%(FORMAT)T
ที่ไหน FORMAT
strftime(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
เอกสารประกอบในตัว