मैंने एक सरल सी प्रोग्राम बनाया है जैसे:
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तो जब भी आप यह देखने के लिए जाते हैं कि यह मौजूद है तो यह चलेगा (लेकिन केवल यदि आप अपना रास्ता संशोधित करते हैं जैसा कि आपने प्रश्न में किया था)।