Score:0

วิธีตรวจสอบว่าคำสั่ง k สุดท้ายรันสำเร็จหรือไม่

ธง cn

ฉันกำลังเรียกใช้คำสั่ง bash สองสามคำสั่งและต้องการตรวจสอบว่าคำสั่งทั้งหมดทำงานสำเร็จหรือไม่ในตอนท้าย ฉันควรทำอย่างไรกับเรื่องนี้?
นี่คือสิ่งที่ฉันพยายาม

$man # คำสั่ง 1 พร้อมสถานะออก 1
คุณต้องการหน้าคู่มืออะไร

$res1=$? # คำสั่ง 2 พร้อมสถานะออก 0
# สิ่งนี้ยังเก็บรหัสทางออกของรหัสก่อนหน้าเช่น 1

$res2=$? # เก็บรหัสทางออกของคำสั่งก่อนหน้าเช่น 0

# ตอนนี้ฉันต้องการตรวจสอบว่าคำสั่งก่อนหน้าทั้งหมดทำงานได้ดีกับรหัสทางออกหรือไม่
$สะท้อน $res1 && $res
1
0: ไม่พบคำสั่ง

สิ่งที่ไม่ถูกต้องกับแนวทางปัจจุบันของฉัน หรือควรทำอย่างไรดี? มีวิธีที่ดีกว่าในการสรุปสำหรับคำสั่ง k สุดท้ายหรือไม่
ขอบคุณล่วงหน้า.

guiverc avatar
cn flag
คุณ `echo $res` แต่จากนั้นขอให้ `$res` ดำเนินการตามคำสั่งหรือไม่ ดังนั้น 'ไม่พบคำสั่ง' จึงใช้ได้เนื่องจากฉันไม่ทราบคำสั่ง 0 เช่นกัน `&&` ตามที่คุณระบุ มันจะทำลายคำสั่งและดำเนินการต่อไปนี้เฉพาะในกรณีที่ส่วนแรกดำเนินการสำเร็จ ดังนั้น `$res` จึงถูกพยายามดำเนินการ แต่ 0 ไม่ถูกต้อง... ดังนั้นข้อผิดพลาด
Score:0
ธง in

ฉันก็มีปัญหาเช่นนี้เช่นกัน

รหัสแก้ปัญหาของฉันด้วยวิธีนี้

ก่อนอื่น ฉันเขียนฟังก์ชันที่ตรวจสอบสถานะของคำสั่งที่ฉันเรียกใช้ในสคริปต์ของฉัน


ฟังก์ชัน show_process_status() {
    ถ้า [ $? == 0 ]; แล้ว 
        เสียงสะท้อน $1
    อื่น
        เสียงสะท้อน $2
        หยุดพัก
    ไฟ
}

ในสคริปต์ของฉัน ฉันจะเรียกฟังก์ชันนี้หลังจากคำสั่งใดๆ ที่ฉันรัน เช่น

ฟังก์ชัน update_system (){
    echo "เริ่มปรับปรุงระบบ"
    sudo apt-get update -y
    show_process_startus "อัปเดต repos สำเร็จ" "เกิดข้อผิดพลาดขณะอัปเดต repos"
    ถ้า [[ $1 == "เต็ม" ]]; แล้ว
        sudo apt-get dist-upgrade -y
        show_process_startus "อัปเดตระบบสำเร็จ" "เกิดข้อผิดพลาดขณะอัปเดตระบบ"
    elif [[ $1 == "แก้ไข" ]]; แล้ว 
        sudo apt-get update --fix-missing
        show_process_startus "การอัปเดตการแก้ไขขาดหายไปสำเร็จ" "เกิดข้อผิดพลาดในการแก้ไขขาดหายไป"
        sudo apt-get อัปเดต
    ไฟ
}

ใน show_process_status ฟังก์ชัน ฉันได้รับสองอาร์กิวเมนต์ อันแรกถูกพิมพ์เมื่อโค้ดรันและออกสำเร็จ และอันที่สองใช้เมื่อออกคำสั่งไม่สำเร็จ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา