Command-Line Alarm Clock สำหรับ Ubuntu

Aug 30 2020

จำเป็นต้องมีคำแนะนำซอฟต์แวร์! ฉันกำลังมองหานาฬิกาปลุกที่จะใช้กับเครื่อง Ubuntu 20.04 ของฉันพร้อมอินเทอร์เฟซบรรทัดคำสั่งเพื่อให้ฉันตั้งค่าการเตือนจากบรรทัดคำสั่ง เนื่องจากในขั้นตอนการทำงานของฉันฉันมักจะต้องตั้งนาฬิกาปลุกหลายครั้งต่อวันโดยปกติจะใช้เวลาประมาณหนึ่งชั่วโมงเท่านั้น เนื่องจากฉันทำสิ่งนี้บ่อยครั้งจึงเป็นเรื่องยากที่จะยุ่งกับ GUI ตลอดเวลา

แน่นอนฉันลองนาฬิกา GNOME แต่ดูเหมือนว่าจะไม่มีอินเทอร์เฟซบรรทัดคำสั่ง

ใครสามารถแนะนำสิ่งที่ฉันกำลังมองหา? ไม่จู้จี้จุกจิกเกินไปเพียงแค่ต้องการให้มันทำงานได้

ขอบคุณล่วงหน้า :)

คำตอบ

3 vanadium Aug 30 2020 at 16:42

คุณสามารถใช้atคำสั่ง (ไม่ได้ติดตั้งโดยค่าเริ่มต้นบน Ubuntu 20.04) ช่วยให้คุณดำเนินการคำสั่งในเวลาที่กำหนด ตัวอย่างเช่นคุณสามารถมีกล่องโต้ตอบ Zenity ปรากฏขึ้นเพื่อใช้เป็นสัญญาณเตือน

BeastOfCaerbannog Aug 30 2020 at 20:31

คุณสามารถใช้sleepคำสั่งซึ่งติดตั้งไว้ล่วงหน้าบน Ubuntu เพื่อเรียกใช้คำสั่งหลังจากระยะเวลาที่กำหนดดังนี้:

sleep NUMBER[SUFFIX] && command

จากman sleep:

DESCRIPTION
       Pause for NUMBER seconds.  SUFFIX may be 's' for seconds (the default), 'm'
       for minutes, 'h' for hours or 'd' for days.  Unlike most implementations
       that require NUMBER be an integer, here NUMBER may be an arbitrary floating
       point number.  Given two or more arguments, pause for the amount of time
       specified by the sum of their values.

ตัวอย่างเช่นคุณอาจเรียกใช้:

sleep 3h 5m 25s && mpv file

เพื่อเปิดfileด้วยmpvเครื่องเล่นสื่อหลังจากผ่านไป 3 ชั่วโมง 5 นาทีและ 25 วินาที


sleepใช้งานได้อย่างสมบูรณ์แบบและตรงไปตรงมาสำหรับการเรียกใช้คำสั่งหลังจากระยะเวลาหนึ่งอย่างไรก็ตามatจะดีกว่าสำหรับการรันคำสั่งที่ (ไม่แปลกใจที่นี่) ตามเวลาที่กำหนด

sleepแต่พฤติกรรมที่คล้ายกันสามารถนำมาใช้กับ นี่คือสคริปต์ตัวอย่าง:

#!/bin/bash
alarm_time=$1 command=$2

# convert alarm_time and current_time to seconds since 1970-01-01 00:00:00 UTC
# and calculate their difference
alarm_time=$(date -d "$alarm_time" +"%s")
current_time=$(date +"%s") diff=$(( $alarm_time - $current_time ))

# convert the time difference to hours
sleep_time=$(echo "scale=5; $diff/3600" | bc)

# run the command at the specified time
sleep "$sleep_time"h && $command

หลังจากบันทึกเป็นalarm.sh(เลือกชื่อที่คุณต้องการ) และทำให้สามารถเรียกใช้งานได้คุณสามารถเรียกใช้เป็น:

/path/to/alarm.sh time command

คุณสามารถเพิ่มสคริปต์ลงในพา ธ ของคุณเพื่อให้เข้าถึงได้ง่ายขึ้นหากต้องการและคุณยังสามารถฮาร์ดโค้ดคำสั่งเพื่อเรียกใช้โดยแทนที่$2ด้วยคำสั่งที่คุณต้องการเรียกใช้