จะรวมข้อความกับข้อความระบบได้อย่างไร


6

ตัวอย่างเช่นฉันต้องการเขียนคำสั่งที่แสดงเวลาและวันที่ของระบบ

จากนั้นฉันต้องการผลลัพธ์เป็นเช่นนี้

The system time is Mon Jan 01 01:01:01 AST 2011.

ฉันรู้คำสั่งที่แสดงเวลาของระบบdateแต่จะเพิ่ม"The system time is"ที่ด้านหน้าของเอาต์พุตได้อย่างไร

มันควรเป็นecho The system time is + %#%@^ + dateแบบนั้นเหรอ?

คำตอบ:


14

วิธีง่ายๆก็คือ:

printf "The system time is %s.\n" "$(date)"

คุณสามารถใช้การแก้ไขสตริงได้:

echo "The system time is $(date)."

12

ด้วยวันที่ GNU:

date +"The system time is %a %b %d %T %Z %Y"

+1 สำหรับสิ่งนี้เพราะมันเป็นคำสั่งเดียวมากกว่าสองคำสั่ง
Monty Harder

@MontyHarder: echoไม่ใช่คำสั่งจริงๆ ...
SilverWolf

echo@seaturtle คุณจะเรียกอะไร อาจจะเป็น "คำสั่งในตัว แต่บางครั้งคำสั่งจากภายนอก"
Jeff Schaller

อย่าใด ๆ (ธรรมดา) เปลือกหอยไม่ได้echoเป็นในตัวหรือไม่? ฉันคิดว่ามันเคยเป็น
SilverWolf

ฉันแค่คิดว่าเราแยกผมถ้าคุณไม่เรียก "คำสั่งในตัว" "คำสั่ง" แต่อย่างอื่น
Jeff Schaller

8

ตรงไปตรงมา:

date +"The system time is %c"
  • %c - วันที่และเวลาของโลแคล

1
@ Ulysses แต่น่าเสียดายที่คุณได้ตอบไปแล้วดูเหมือนว่าภายในหนึ่งชั่วโมงหลังจากถามคำถาม
Monty Harder


0

ในสมัยก่อนเราทำ

echo The system time is `date`.

แต่ backticks สำหรับการทดแทนคำสั่งถูกคัดค้านในทุกวันนี้ ใช้สิ่งนี้แทน

echo The system time is $(date).

(เฉพาะอักขระพิเศษที่จะพิมพ์ 1 ตัว) คุณไม่จำเป็นต้องพูดคำพูดซ้ำ ๆ


0

นิด ๆ :

echo -n 'The system time is '; date

ต้องการสวิตช์echoที่ให้เกียรติ-nแต่คุณต้องค้นหาอย่างลึกซึ้งเพื่อหาระบบที่ไม่ได้ใช้ (หรือใช้printf)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.