আমি এর মতো একটি সাধারণ সি প্রোগ্রাম তৈরি করেছি:
int main(int argc, char *argv[]) {
if (argc != 5) {
fputs("Not enough arguments!\n", stderr);
exit(EXIT_FAILURE);
}
এবং আমি আমার PATH এ জাতীয় / bash.bashrc এ পরিবর্তন করেছি:
PATH=.:$PATH
আমি এই প্রোগ্রামটিকে set.c হিসাবে সংরক্ষণ করেছি এবং এটি সংকলন করছি
gcc -o set set.c
ফোল্ডারে
~/Programming/so
যাইহোক, আমি কল যখন
set 2 3
কিছুই ঘটেনি. উপস্থিত কোনও পাঠ্য নেই।
কল করা হচ্ছে
./set 2 3
প্রত্যাশিত ফলাফল দেয়
PATH এর আগে ও আগে কখনও আমার সমস্যা হয়নি
which set
আয় ./set। সুতরাং দেখে মনে হচ্ছে যে পথটি সঠিক। কি হচ্ছে?
testমূলত একই কারণে আপনার পরীক্ষা প্রোগ্রামটি কল করাও একটি খারাপ ধারণা ; testএটিও অন্তর্নির্মিত একটি শেল।
testদেওয়ার জন্য এটি বোধগম্য হয়। অবশ্যই আপনি এটি নিজের মধ্যে রাখার সময় PATHপর্যন্ত আপনার সত্যই আলাদা নামটি নিয়ে আসা উচিত ছিল। এবং যতক্ষণ না আপনি প্রোগ্রামটি নিজের মধ্যে রাখেন ততক্ষণ আপনাকে PATHএটিকে ./testযেভাবেই ডাকা উচিত । সুতরাং testকোনও প্রোগ্রামের জন্য নামটি ব্যবহার করা যতক্ষণ না এটি একটি তাত্ক্ষণিক পরীক্ষা যা দিন শেষ হওয়ার আগেই আপনি মুছতে চান তা ঠিক।
foo।
lsতবে যখনই আপনি দেখতে যান এটি বিদ্যমান কিনা এটি চলবে (তবে কেবল আপনি যদি প্রশ্নটিতে যেমন করেন তবে আপনার পথটি পরিবর্তন করেন)।