कई SO प्रश्नों और बैश ट्यूटोरियल्स में, मैं देखता हूं कि मैं bash स्क्रिप्ट में कमांड लाइन आर्ग्स को दो तरीकों से एक्सेस कर सकता हूं:
$ ~ >cat testargs.sh
#!/bin/bash
echo "you passed me" $*
echo "you passed me" $@
जिसके परिणामस्वरूप:
$ ~> bash testargs.sh arg1 arg2
you passed me arg1 arg2
you passed me arg1 arg2
बीच क्या अंतर है $*
और $@
?
किसी को पूर्व का उपयोग कब करना चाहिए और बाद वाले को कब उपयोग करना चाहिए?
echo "something $@"
एक त्रुटि के रूप में व्यवहार करता है