2011-11-03 15 views
16

में दिए गए कम से कम दो तर्क हैं, मैं एक ऐसी स्क्रिप्ट लिखने की कोशिश कर रहा हूं जो सीपी की नकल करता है जहां स्रोत और गंतव्य इनपुट होता है। कैसे मैं उदाहरणजांचें कि बैश स्क्रिप्ट

./myscript src गंतव्य

जाँच लें कि कम से कम 2 बातें दिए गए थे के लिए कमांड लाइन

पर दिए गए तर्कों की संख्या की गणना कर सकते हैं।

उत्तर

24

$# विशेष चर का उपयोग करें। इसका मूल्य तर्कों की संख्या है। तो अगर आप एक स्क्रिप्ट है कि केवल शामिल हैं:

echo $# 

और इस तरह यह निष्पादित करें:

thatscript foo bar baz quux 

यह आपके मामले में प्रिंट करेंगे 4.

आप की तरह कुछ करने के लिए चाहते हो सकता है :

if [ $# -ne 2 ]; then 
    # TODO: print usage 
    exit 1 
fi 
15

तर्क से आवश्यकता के अनुसार जा रहे हैं कि तर्कों में "कम से कम 2 चीजें" होनी चाहिए, मुझे लगता है

if (($# < 2)); then 
    # TODO: print usage 
    exit 1 
fi 

का उपयोग करके आप if [ $# -ne 2 ]; का उपयोग करते हैं arithmetic expansion(()) किसी भी मूल्य के लिए 2.

बराबर नहीं के लिए exit 1 मार से इसे रोकने जाएगा यह के किसी भी संख्या के लिए सशर्त ट्रिगर किया जाएगा: यह जाँच करने के लिए और अधिक सटीक हो सकता है 2.

के अलावा अन्य तर्क
संबंधित मुद्दे