मेरी स्क्रिप्ट में मैं यह जांचने में त्रुटि कर रहा हूं कि क्या पहला और एकमात्र तर्क -v के बराबर है, लेकिन यह एक वैकल्पिक तर्क है। मैं एक if स्टेटमेंट का उपयोग करता हूं लेकिन मुझे unary ऑपरेटर अपेक्षित त्रुटि मिलती रहती है।
यह कोड है:
if [ $1 != -v ]; then
echo "usage: $0 [-v]"
exit
fi
संपादित करें:
मुझे और अधिक विशिष्ट होना चाहिए: ऊपर की स्क्रिप्ट का यह भाग एक वैकल्पिक तर्क की जाँच कर रहा है और उसके बाद, यदि तर्क में प्रवेश नहीं किया गया है, तो इसे बाकी कार्यक्रम चलाना चाहिए।
#!/bin/bash
if [ "$#" -gt "1" ]; then
echo "usage: $0 [-v]"
exit
fi
if [ "$1" != -v ]; then
echo "usage: $0 [-v]"
exit
fi
if [ "$1" = -v ]; then
echo "`ps -ef | grep -v '\['`"
else
echo "`ps -ef | grep '\[' | grep root`"
fi
$-है नहीं वर्तमान स्क्रिप्ट का नाम है। $0है।
echo "usage: $0 [-v]";$-सक्रिय शेल विकल्प झंडे दिखाता है, वर्तमान स्क्रिप्ट का नाम नहीं।