लाइनक्स डायलॉग कमांड पर पाइप्ड प्रोग्राम का स्टेटस कोड कैसे प्राप्त करें


3

मैं dialogउबंटू के लिए सरल इंस्टॉलर तैयार करने के लिए लिनक्स का उपयोग करने की कोशिश कर रहा हूं । वास्तविक आदेश है:

  dpkg -i package.deb 2>&1 | dialog --programbox "Installing..." 10 100

मैं कमांड dialogद्वारा उत्पादित किसी भी आउटपुट को प्रदर्शित करना चाहता हूं dpkgचाहे वह सामान्य आउटपुट या त्रुटि संदेश हो, इसलिए मैं stdout को stderr रीडायरेक्ट करता हूं। यह काम।

समस्या यह है कि dpkgदोनों कमांड समाप्त होने के बाद मुझे कमांड की स्थिति कोड की आवश्यकता है । बस यह जानना है dpkgकि अपना काम किया या नहीं। दुर्भाग्य से, इन आदेशों के समाप्त होने के बाद, मैं केवल dialogकमांड की स्थिति कोड प्राप्त कर सकता हूं ...

किसी को पता है कि dpkgऊपर के उदाहरण से कमांड का स्थिति कोड कैसे प्राप्त करें ?

जवाबों:


3

आप जो खोज रहे हैं वह पिपेस्टाटस है :

dpkg -i ... | dialog ...
echo ${PIPESTATUS[0]} # this contains the exit code of the dpkg command.

वह उदाहरण देखें:

$ false | true | false | true
$ echo ${PIPESTATUS[@]}
1 0 1 0

यही वह है जिसकी तलाश में मैं हूं! धन्यवाद!
WRZ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.