คุณต้องเพิ่มการดำเนินการเชลล์สคริปต์ลงในสคริปต์อัตโนมัติของคุณและทำการตั้งค่าจริงในเชลล์สคริปต์ ฉันไม่เชื่อว่าเป็นไปได้ที่จะได้รับเวลาเริ่มต้นของสคริปต์อัตโนมัติดังนั้นคุณจะต้องชำระด้วยการประทับเวลาที่สัมพันธ์กับเวลาที่เรียกใช้สคริปต์เชลล์ หากคุณต้องการเวลาเริ่มต้นจริงๆคุณจะต้องเพิ่มการกระทำเพื่อบันทึกด้วยตัวคุณเองเป็นขั้นตอนแรกในสคริปต์อัตโนมัติ
ในเชลล์การคำนวณเวลาจะทำกับวันที่
date -v 1M
ให้เวลาคุณหนึ่งนาทีก่อน หากคุณต้องการฟอร์แมตในรูปแบบเฉพาะที่คุณให้ไว้ข้างต้นคุณต้องฟอร์แมตด้วยตัวเองเช่นนั้น
date -v -1M '+%b %d, %Y, %H:%M:%S %p'
ที่นี่% b,% d ฯลฯ เป็นผู้ถือตำแหน่งสำหรับส่วนประกอบการประทับเวลาต่างๆ ดูหน้าคนสำหรับ strftime
ถัดไปคุณต้องรู้วิธีการเปลี่ยนไฟล์ plist คุณสามารถใช้พลู ธ ในการทำเช่นนั้นได้
plutil -replace SULastCheckTime -string newvalue foo.plist
เมื่อรวมเข้าด้วยกันแล้วเชลล์สคริปต์สามารถอ่านได้
time=`date -v -1M '+%b %d, %Y, %H:%M:%S %p'`
plutil -replace SULastCheckTime -string "$time" foo.plist
ที่นี่ backticks ใช้การส่งออกของวันที่และวางไว้ในเวลาตัวแปร; พลูติลจะนำไปไว้ในไฟล์
หากคุณจะใช้เชลล์สคริปต์อยู่แล้วคุณอาจลองวางออโตเมติกโดยรวมเพื่อสนับสนุนเชลล์สคริปต์