मैं एक कार्यक्रम को फिर से शुरू करने की कोशिश कर रहा हूं अगर इसमें केवल एक ही पीआईडी जुड़ा हुआ है (इसमें दो पीआईडी होनी चाहिए)। यदि यह एक से अधिक है, तो यह ठीक है, मैंने इसे करने के लिए एक बैश स्क्रिप्ट लिखने की कोशिश की है, लेकिन मैं इसे स्पष्ट रूप से काम करने के लिए संघर्ष कर रहा हूं, यह मेरा कोड इतना फ्रिक है, क्या कोई मुझे अपना लक्ष्य प्राप्त करने में मदद कर सकता है?
#! /bib/bash
pgrepRes=($(pgrep deluge))
if ["${#pgrepRes[@]}" -ne "2"];
then
kill ${pgrepRes[0]};
fi
deluge
लेकिन मुझे यह परिणाम मिल रहा है:
जैसा कि आप देख सकते हैं कि मैंने चेक किया कि डेल्यूड के साथ कितने पीआईडी जुड़े हुए हैं।
अग्रिम धन्यवाद, मुझे आशा है कि मैंने खुद को पर्याप्त स्पष्ट कर दिया, अन्यथा, पूछें :)
[
तथा ]
। इसका आह्वान करने से कोई लेना-देना नहीं है kill
।
-ne 2
। आपको उपयोग करना चाहिए -lt 2
से कम और नहीं बराबर नहीं -ne
... आपको उपयोगी खोजना चाहिए कुछ प्रेरणा लें;) वहाँ से बैश शुरुआती गाइड ।
$(pgrep deluge | wc -l)
। यह आपको लाइनों की संख्या देना चाहिए, औरpkill deluge
अगर बयान के अंदर। एक स्थान जोड़ें[ whatever is ]
। कभी नहीँ[withoutspaces]