मैं यह जानने की कोशिश कर रहा हूं कि गेटटॉप्स का उपयोग कैसे किया जाए ताकि मेरे पास पार्स इनपुट के साथ स्क्रिप्ट हो सकें (हालांकि मुझे लगता है कि गेटटॉप्स बेहतर हो सकते हैं)। मैं विभाजन उपयोग प्रतिशत वापस करने के लिए एक सरल स्क्रिप्ट लिखने की कोशिश कर रहा हूं। समस्या यह है कि मेरे बैश कार्यों में से एक ऐसा नहीं लगता है कि मैं $1
फ़ंक्शन के भीतर एक चर के रूप में संदर्भित करता हूं । कारण मैं संदर्भित करता हूं $1
क्योंकि get_percent
फ़ंक्शन को माउंट बिंदु के सभी के बजाय प्रदर्शित करने के लिए वैकल्पिक तर्क के रूप में एक माउंट बिंदु पारित किया जा सकता है।
लिपी
#!/usr/bin/bash
set -e
set -u
set -o pipefail
get_percent(){
if [ -n "$1" ]
then
df -h $1 | tail -n +2 | awk '{ print $1,"\t",$5 }'
else
df -h | tail -n +2 | awk '{ print $1,"\t",$5 }'
fi
}
usage(){
echo "script usage: $(basename $0) [-h] [-p] [-m mount_point]" >&2
}
# If the user doesn't supply any arguments, we run the script as normal
if [ $# -eq 0 ];
then
get_percent
exit 0
fi
# ...
उत्पादन
$ bash thing.sh
thing.sh: line 8: $1: unbound variable
$ bash -x thing.sh
+ set -e
+ set -u
+ set -o pipefail
+ '[' 0 -eq 0 ']'
+ get_percent
thing.sh: line 8: $1: unbound variable
getopts
, क्या ऐसा होता है?-u
कॉल करने से पहले आपकी स्क्रिप्ट निकल जाती हैgetopts
।