আমার সন্দেহ হয় আপনি তৃতীয় জিনিসটি করার চেষ্টা করছেন তবে ভুল সিনট্যাক্স ব্যবহার করছেন। পাঁচটি সাধারণ ভুল যা আপনাকে যা দেখছে তার মতো ত্রুটি তৈরি করতে পারে:
পরিবর্তে স্পেস ব্যবহার করা =
। export NAME value
ভুল; value
এরপরে রফতানির জন্য পরবর্তী চলকের নাম হিসাবে ব্যাখ্যা করা হয়।
(এই ঘটনা কারণ export NAME1 NAME2
হল একাধিক ভেরিয়েবল রপ্তানি জন্য সঠিক বাক্য গঠন।)
চারপাশে ফাঁকা স্থান =
। অনেক প্রোগ্রামিং ভাষায়, এটি বেশিরভাগ সময় ফাঁকা জায়গাগুলির সাথে প্যাড অপারেটরগুলিতে বৈধ এবং স্টাইলিস্টিক উভয়ই পছন্দ করে। তবে শেল স্ক্রিপ্টে (বা আপনি যে শেল কমান্ড জারি করছেন এমন অন্যান্য পরিস্থিতিতে) কোনও ভেরিয়েবলের মান নির্ধারণের জন্য, এটি অনুমোদিত নয়। NAME = value
(একটি export
আদেশে বা অন্যথায়) কাজ করবে না; আপনি ব্যবহার করা আবশ্যক NAME=value
।
( export NAME = value
রপ্তানি ভেরিয়েবল করার চেষ্টা করে নামে NAME
, =
এবং value
। সৌভাগ্যবশত এই সফল করতে চুপটি কারণ একটি পরিবর্তনশীল নামক রপ্তানি করতে প্রয়াস মনে হচ্ছে, কখনো =
একটি বাক্য গঠন ত্রুটি। এর বিপরীতে export NAME= value
কাজ দেখা যাবে, কিন্তু বরাদ্দ না value
করার NAME
--instead, এটা খালি নির্ধারণ, শূন্য দৈর্ঘ্যের স্ট্রিং NAME
এটিকে রফতানি করে এবং পৃথকভাবে চলকটি রফতানি করে value
Both উভয়ই সাধারণ ভুল))
ভেরিয়েবলের মানটির অংশগুলি ফাঁক দিয়ে পৃথক করে। বিভিন্ন পরিবেশের করতে খালি জায়গা থাকা, কিন্তু বাস্তবে তারা খুব কমই এনভায়রনমেন্ট ভেরিয়েবল মাঠে বিভাজক হিসেবে ব্যবহৃত হয়। যখন কোনও একক ভেরিয়েবল ইচ্ছাকৃতভাবে একাধিক পাথ থাকে, সাধারণত :
তাদের পৃথক করতে ব্যবহৃত হয়।
ভেরিয়েবলগুলিকে বরাদ্দ করার সময় স্পেসগুলি উদ্ধৃত করা হয় না। কখনও কখনও একটি পরিবেশের ভেরিয়েবলের মানটিতে একটি স্থান থাকে। উদাহরণস্বরূপ, এটি সম্ভবত এমন একটি ডিরেক্টরিটির নাম হতে পারে যা সত্যিই একটি স্থান থাকে। সেক্ষেত্রে যে কোনও ফাঁকির উদ্ধৃতি দেওয়া দরকার।
এটি করার একটি উপায় হ'ল তাদের আগে \
। দেখুন আমি কীভাবে সিডি কমান্ডকে দেওয়া প্রথম বন্ধনীগুলি রক্ষা করতে পারি? এবং অন্যান্য উপায়ে তথ্যের জন্য ফাইল মুছতে অক্ষম - উত্তরে উপস্থাপিত পদ্ধতিগুলি প্রযোজ্য, যদিও কোনও প্রশ্নই বিশেষত পরিবেশের ভেরিয়েবলগুলিকে নির্ধারণের বিষয়ে নয়।
উদাহরণস্বরূপ, SILLYPATH
মানটির সাথে পরিবেশ পরিবর্তনশীল রফতানি করার কয়েকটি উপায় এখানে রয়েছে /home/ek/silly name/bin
:
export SILLYPATH=/home/ek/silly\ name/bin
export SILLYPATH='/home/ek/silly name/bin'
export SILLYPATH="/home/ek/silly name/bin"
প্রায়শই যখন আপনাকে কোনও শেল ব্যবহার করা আবশ্যক বা একটি বহুল ব্যবহৃত পরিবেশগত ভেরিয়েবলের জন্য নির্ধারিত ফোল্ডারে কোনও স্থান থাকে তখন এটির নাম পরিবর্তন করে উপকার পেতে পারে। (তবে কখনও কখনও এটি ব্যবহারিক বা অযাচিত হয়))
যখন কিছুই করা হয়নি তখন ভেরিয়েবলকে বরাদ্দ করা এবং / অথবা রফতানি করা। এটি একটি মেটা-ভুলের ধরণ; নির্দিষ্ট প্রযুক্তিগত সমস্যাটি প্রায়শই উপরেরগুলির মধ্যে একটি হয় তবে সমাধানটি হ'ল আপত্তিজনক রেখাটি বা এর কিছু অংশ সমাধানের পরিবর্তে মুক্তি দেওয়া। .bashrc
অবশ্যই নির্বিচারে কোডটি অপসারণ করবেন না । তবে একটি export
দুর্ঘটনাক্রমে যুক্ত হতে পারে, অথবা অজান্তে এটিতে উদ্দেশ্য অনুযায়ী আরও কোড থাকতে পারে। উদাহরণস্বরূপ, ধরুন আপনি লিখতে চেয়েছিলেন:
echo 'export PATH=~/some.bin:"$PATH"' >>~/.bashrc; . ~/.bashrc
এটি এতে যুক্ত হবে .bashrc
, তারপরে এটি পুনরায় উত্স করুন। তবে ধরুন আপনি পরিবর্তে লিখেছেন:
echo 'export PATH=~/some.bin:"$PATH" . ~/.bashrc' >>~/.bashrc # WRONG!
তারপর আপনার export
কমান্ড মাত্র একজন উদ্দীপ্ত মান রপ্তানি করবে না PATH
, কিন্তু রপ্তানি নামে ভেরিয়েবল করার চেষ্টা করবে .
এবং যা কি আপনি চান না। যেহেতু এগুলিতে এমন অক্ষর রয়েছে যা ভেরিয়েবল নামগুলিতে নিষিদ্ধ, তাই আপনি প্রতিবার নতুন ইন্টারেক্টিভ বাশ শেল শুরু করার সময় ত্রুটি পাবেন।/home/your-username/.bashrc
এই সমস্যাটি এড়াতে, আমি আউটপুটটি এর শেষে নিয়ে যাওয়ার পরিবর্তে .bashrc
একটি সম্পাদক (যেমন nano ~/.bashrc
,, gedit ~/.bashrc
) এ সম্পাদনা করার পরামর্শ দিচ্ছি >>
।