मैंने एक सरल सी प्रोग्राम बनाया है जैसे:
int main(int argc, char *argv[]) {
if (argc != 5) {
fputs("Not enough arguments!\n", stderr);
exit(EXIT_FAILURE);
}
और मैं अपने पेट में आदि / bash.bashrc की तरह संशोधित किया है:
PATH=.:$PATH
मैंने इस प्रोग्राम को set.c के रूप में सहेजा है और इसे संकलित कर रहा हूं
gcc -o set set.c
फ़ोल्डर में
~/Programming/so
हालांकि, जब मैं फोन करता हूं
set 2 3
कुछ नहीं हुआ। ऐसा कोई पाठ नहीं है जो प्रकट होता है।
कॉलिंग
./set 2 3
अपेक्षित परिणाम देता है
मुझे पहले कभी पाथ के साथ कोई समस्या नहीं हुई है और
which set
लौटता है ./set
। तो ऐसा लगता है कि पथ सही है। क्या हो रहा है?
test
मूल रूप से उसी कारण से अपने परीक्षण कार्यक्रम को कॉल करना भी एक बुरा विचार है ; test
एक शेल भी बनाया गया है।
test
समझ में आता है। बेशक जब तक आप इसे अपने PATH
पास रखते हैं तब तक आपको वास्तव में एक अलग नाम के साथ आना चाहिए था। और जब तक आप कार्यक्रम को अपने अंदर नहीं रखते हैं तब तक आपको PATH
इसे ./test
वैसे ही लागू करना होगा । इसलिए test
किसी प्रोग्राम के लिए नाम का उपयोग करना ठीक है क्योंकि यह एक त्वरित परीक्षा है जिसे आप दिन के अंत से पहले हटाने का इरादा रखते हैं।
foo
।
ls
तो जब भी आप यह देखने के लिए जाते हैं कि यह मौजूद है तो यह चलेगा (लेकिन केवल यदि आप अपना रास्ता संशोधित करते हैं जैसा कि आपने प्रश्न में किया था)।