ตัว>
เปลี่ยนเส้นทางเขียนเอาต์พุตของคำสั่ง ( stdout
ไม่ใช่stderr
- คุณใช้2>
สำหรับสิ่งนั้น) ไปยังไฟล์ที่ระบุหลังจากนั้น หากมีอยู่แล้วไฟล์จะถูกเขียนทับ
ลักษณะการทำงานนี้มีประโยชน์สำหรับคำสั่งแรกของคุณ: หากมีไฟล์ที่มีอยู่แล้วควรลบและแทนที่ด้วยไฟล์ใหม่
>>
อย่างไรก็ตามตามที่คุณต้องการที่จะผนวกเอาท์พุทเพิ่มเติมทั้งหมดแทนการแทนที่คนก่อนหน้านี้คุณจะต้องใช้ผนวก-เปลี่ยนเส้นทาง สิ่งนี้จะสร้างไฟล์หากยังไม่มีอยู่ แต่จะผนวกเอาท์พุทที่เปลี่ยนเส้นทางไปยังไฟล์หากมีอยู่แล้ว
และโปรดอย่าใช้ไพพ์|
ในการเขียนหลายคำสั่งในหนึ่งบรรทัดซึ่งจะเปลี่ยนทิศทางเอาต์พุตของคำสั่งแรก ( stdout
) ไปยังอินพุตของคำสั่งที่สอง ( stdin
)
คุณสามารถใช้เครื่องหมายอัฒภาค ( ;
) เพื่อบอกให้ bash เรียกใช้คำสั่งหนึ่งคำสั่งหลังจากนั้นอีกครั้งราวกับว่ามันเป็นไฟล์สคริปต์ หากคำสั่งล้มเหลว (โค้ดส่งคืนไม่ใช่ 0) คำสั่งที่เหลือยังคงถูกเรียกใช้งาน
หรือคุณอาจเลือกที่ผู้ประกอบการและตรรกะ ( &&
) หรือ OR ( ||
):
ถ้าคุณใช้&&
ในการเชื่อมต่อสองคำสั่งที่สองจะเพียง แต่จะดำเนินการถ้าคนแรกที่ประสบความสำเร็จ (รหัสส่งกลับเป็น 0) หากล้มเหลวจะไม่มีคำสั่งใดต่อไปนี้ทำงาน แต่เพียงรันคำสั่งที่สองถ้าคนแรกที่ล้มเหลว (รหัสการส่งคืนไม่ได้เป็น 0)!
||
ดังนั้นในกรณีของคุณฉันขอแนะนำให้คุณใช้เครื่องหมายอัฒภาค:
md5sum firefox.tar.gz > sha.txt ; sha1sum firefox.tar.gz >> sha.txt ; sha512sum firefox.tar.gz >> sha.txt
{}
หรือ()
? ขอขอบคุณ.