কিভাবে মাছের শেল পরিবেশগত পরিবর্তনশীল সেট করতে


91

কেউ দয়া করে আমাকে বলতে পারবেন যে মাছের শেলের মধ্যে গুচ্ছ পরিবেশের ভেরিয়েবল সেট করার সঠিক উপায় কী?

আমার। কনফিগ / ফিশ / কনফিগারেশন.ফিশ ফাইলটিতে আমার মতো পরিবেশের ভেরিয়েবল সেটআপ করার জন্য আমার একটি ফাংশন রয়েছে

function setTESTENV
      set -x BROKER_IP '10.14.16.216'
      set -x USERNAME 'foo'
      set -x USERPASS 'bar'
end 

আমি যখন কমান্ড প্রম্পট থেকে টাইপ করি setTESTENVএবং envকমান্ড লাইনে একটি করি, আমি এই তথ্যগুলি দেখতে পাই না।

উত্তর:


70

আপনি যে ভেরিয়েবলগুলি ঘোষণা করছেন তা আপনার ফাংশনের ভিতরে একটি স্থানীয় স্কোপে রাখবে।

ব্যবহার:

set -g -x

এখানে " g" বিশ্বব্যাপী।


152

ইউনিভার্সাল ভেরিয়েবল ব্যবহার করুন

চলকটি যদি বর্তমান কম্পিউটারে সমস্ত বর্তমান ব্যবহারকারী ফিশ ইনস্ট্যান্সের মধ্যে ভাগ করে নিতে হয় এবং শেলটি পুনরায় আরম্ভ করতে পারে তবে আপনাকে ব্যবহার করতে হবে -Uবা --universal:

set -Ux FOO bar

ব্যবহার setকরে -gবা --globalশেল দৃষ্টান্তের মধ্যে অবিচ্ছিন্নভাবে পরিবর্তনশীল সেট করে না


দ্রষ্টব্য :

config.fishফাইলের সর্বজনীন ভেরিয়েবলগুলিতে যুক্ত করবেন না , কারণ এই পরিবর্তনকগুলি প্রতিটি নতুন শেল উদাহরণের সাথে দীর্ঘতর হবে। পরিবর্তে, কেবল -Uxকমান্ড লাইনে একবার সেট চালান । এবং এটি সেই ফাইলে সংরক্ষণ করা হবে .config/fish/fishd.MACHINE_IDযেখানে MACHINE_IDসাধারণত আপনার ম্যাকের ঠিকানা থাকে।


আমার ভেরিয়েবলগুলি সংরক্ষণ করা হয়নি fishd.MACHINE_IDতবে পরিবর্তে সেভ করা হয়েছে~/.config/fish/fish_variables
Seanny123

আমার পরিবর্তনশীলটি ~/.config/fish/fish_variablesউবুন্টু 20.04
ইগোর মার্কেলোভ

11

আর একটি বিকল্প চালানো হয়:

export (cat env_file.txt |xargs -L 1)

যেখানে env_file.txt এ বিন্যাসের সারি রয়েছে VAR=VALUE

এর অন্যান্য শেল এবং সরঞ্জামগুলির দ্বারা সমর্থিত বিন্যাসে ভেরিয়েবলগুলি রাখার সুবিধা রয়েছে


আপনি যদি মন্তব্যগুলি এড়াতে চান তবে আপনি করতে পারেন: export (grep "^[^#]" .env |xargs -L 1)
গিলারমো

10

মাছের মধ্যে পরিবেশের পরিবর্তনগুলি

আমি এটি যোগ করতে চাই, যদিও @ জোসেডুসোলের উত্তরটি ভুল নয় এবং ওপি সমস্যা সমাধানে সহায়তা করে, -gকেবলমাত্র বিশ্বব্যাপী হওয়ার সুযোগটি নির্ধারণ করছে, যখন -xনির্দিষ্ট পরিবেশের পরিবর্তনশীল শিশু প্রসেসগুলিতে রফতানি করার কারণ ঘটছে।

উপরেরটি ব্যর্থ হওয়ার কারণ, কারণ @cfpete একটি ফাংশনের ভিতরে এনভ ভার্স সেট করছে এবং ডিফল্ট স্কোপটি সেই ফাংশনের স্থানীয় হবে।

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