ฉันมีสคริปต์ที่ตรวจสอบว่ามีการติดตั้งแพคเกจหรือไม่และไม่ว่าจะใช้พอร์ต 8080 โดยกระบวนการเฉพาะหรือไม่ ฉันไม่เคยมีประสบการณ์กับทุบตีเลยดังนั้นฉันจึงทำสิ่งนี้:
if dpkg -s net-tools; then
    if  netstat -tlpn | grep 8080 | grep java; then
        echo "Shut down server before executing this script"
        exit
    fi
else
    echo "If the server is running please shut it down before continuing with the execution of this script"
fi
# the rest of the script...อย่างไรก็ตามเมื่อสคริปต์ถูกเรียกใช้งานฉันได้รับทั้งdpkg -s net-toolsและnetstat -tlpn | grep 8080 | grep javaเอาต์พุตในเทอร์มินัลและฉันไม่ต้องการสิ่งนั้นฉันจะซ่อนเอาต์พุตและติดกับผลลัพธ์ของifs ได้อย่างไร
นอกจากนี้ยังมีวิธีที่สง่างามกว่าในการทำสิ่งที่ฉันกำลังทำอยู่หรือไม่? และมีวิธีที่ฉลาดกว่าที่จะทราบว่ากระบวนการใดที่ใช้พอร์ต 8080 (ไม่ใช่เฉพาะเมื่อมันถูกใช้) หากมี
grep -qและทุบตีใหม่&> ...เป็นคำพ้องสำหรับ> ... 2>&1