কমান্ড লাইনে আমি কীভাবে একটি ভেরিয়েবল আনসেট করব?


80

আমি প্রক্সি চালু করতে নিম্নলিখিত কমান্ডটি চেষ্টা করেছি yaourt:

export ALL_PROXY=http://proxy.example.com:8080

প্রশ্নটি কীভাবে প্রক্সিটি আনসেট করবেন yaourt? সাধারণভাবে, আমি কীভাবে বর্তমান শেলটিতে একটি ভেরিয়েবলের মান আনসেট করতে পারি?


7
চেষ্টা করুনunset ALL_PROXY
coffeMug

@coffeMug পাশাপাশি করতে পারে যে একটি উত্তর মধ্যে, এছাড়াও আপনি এখান থেকে কিছু তথ্য চুরি করতে পারে: stackoverflow.com/a/12263914/1081936
terdon

স্বীকৃত উত্তরের পাশাপাশি, যদি আপনি এমন একটি কমান্ড থাকেন যা আপনি প্রায়শই চালান যা এমন পরিবেশের পরিবর্তনশীল ব্যবহার করে যা আপনি নিজের শেল সেশনের বাকি অংশের জন্য সেট না করে বা পরিবর্তন করতে চান তবে আপনি এটি চালাতে পারেন: $ ALL_PROXY=http://proxy.example.com:8080 yaourtএটি কেবল এনভ্যাভারকে সেট করবে কমান্ড রান। আপনি হিসাবে অনেক লাগাতে পারেন FOO=bar BAZ=batআপনি কমান্ড চালানোর জন্য পূর্বে চান হিসাবে ভেরিয়েবল।
একমাত্র

উত্তর:


112

পরিবেশের পরিবর্তনশীল অপসারণ করতে, চালান

unset ALL_PROXY

নোট করুন যে পরিবেশের পরিবর্তনশীল কেবল একটি প্রোগ্রাম এবং এটি চালু হওয়া প্রোগ্রামে কার্যকর হয়। যদি আপনি একটি শেল উইন্ডোতে পরিবেশের পরিবর্তনশীল সেট করেন তবে এটি অন্যান্য শেল উইন্ডোগুলিকে প্রভাবিত করে না।

আপনি যদি export ALL_PROXY=…কোনও সূচনা ফাইলটিতে যুক্ত করেন তবে সেখান থেকে সরিয়ে দিন।

exportবর্তমান শেলটিতে পরিবেশের ভেরিয়েবলগুলি সেট করা আছে তা দেখতে আপনি কোনও যুক্তি ছাড়াই চলতে পারেন ।

মনে রাখবেন যে shell শেলটি দিয়ে শুরু করা প্রোগ্রামগুলিতে শেল পরিবর্তনশীল উপলভ্য করার জন্য আপনাকে export VARঅ্যাসাইনমেন্টের পরে চালিয়ে VAR=VALUEঅথবা দুটি ( export VAR=VALUE) সংযুক্ত করে এক্সপোর্ট করতে হবে ।


19

বাশ ব্যবহারে একটি সীমাবদ্ধ পরিবর্তনশীল আনসেট করতে unset VARIABLE( unset ALL_PROXYআপনার ক্ষেত্রে)। এই কমান্ডটি আসলে ভেরিয়েবল মুছে দেয়। আপনি একটি ভেরিয়েবলের মানটি খালি করে সেট করতে পারেন

VARIABLE=

অথবা

VARIABLE=""

পার্থক্যটি হ'ল দুটি উত্তরোত্তর কমান্ড ভেরিয়েবলটি মুছবে না। -uপতাকাটি setপরিবর্তিত করার সময় আনসেট ভেরিয়েবলকে ত্রুটি হিসাবে বিবেচনা করার জন্য এটি ব্যবহার করে জোর করে পার্থক্যটি দেখতে পাবেন :

/home/user1> var=""
/home/user1> echo $var

/home/user1> set -u
/home/user1> echo $var

/home/user1> unset var
/home/user1> echo $var
-bash: var: unbound variable

উপরের উদাহরণে, ব্যাশ সম্পর্কে অভিযোগ varযা প্রত্যাশিত ত্রুটি (মনে রাখবেন যে এই দ্বিতীয় প্রতিধ্বনি কমান্ডে ঘটে না, যার মানে হল আছে (এর মান unsetting পরে) আনবাউন্ড হয় varএকটি মান যা হয়েছে emptyবা null)।


আমার শেল স্ক্রিপ্ট ফাইলটিতে যদি আমার একটি ভেরিয়েবল থাকে এবং আমি সেই ফাইলটি উত্স করি, তবে আমি কীভাবে আনসেট করব?
অভিনব

লিপিটিতে @ অভিনব ব্যবহার unsetকরুন। একই প্রযোজ্য।
coffeMug
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.