লিনাক্সে HOSTNAME পরিবেশ পরিবর্তনশীল


21

আমার লিনাক্স বাক্সে (জেন্টু লিনাক্স ২.6.৩১ নির্দিষ্ট হওয়ার জন্য) আমি লক্ষ্য করেছি যে HOSTNAME এনভায়রনমেন্ট ভেরিয়েবলটি আমার শেলটিতে পাওয়া যায়, তবে স্ক্রিপ্টগুলিতে নয়। উদাহরণ স্বরূপ,

$ echo $HOSTNAME

আয়

xxxxxxxx.com,

কিন্তু

$ ruby -e 'puts ENV["HOSTNAME"]'

আয়

nil

অন্যদিকে, ব্যবহারকারী পরিবেশ পরিবর্তনশীল, উদাহরণস্বরূপ, শেল এবং স্ক্রিপ্ট উভয় ক্ষেত্রেই উপলব্ধ।

আমি লক্ষ্য করেছি যে প্রকারের পরিবর্তনশীলগুলির তালিকায় USER টাইপ হয় যা আমি টাইপ করার সময় উপস্থিত হয়

export

অর্থাত,

declare -x USER="infogrind"

কিন্তু HOSTNAME দেয় না। আমি সন্দেহ করি যে সমস্যার সাথে এর কিছু আছে।

আমার প্রশ্নসমূহ: 1) আমি কীভাবে HOSTNAME কে স্ক্রিপ্টগুলিতে উপলব্ধ করতে পারি এবং 2) আমার আরও ভাল বোঝার জন্য, এই পরিবর্তনশীল প্রথমে কোথায় সেট করা আছে এবং কেন এটি "রফতানি" হয় না?

উত্তর:


21

$HOSTNAMEবাশ ভেরিয়েবল যা স্বয়ংক্রিয়ভাবে সেট হয় (একটি স্টার্টআপ ফাইলের চেয়ে)। রুবি সম্ভবত shএটির শেলটি চালায় এবং এতে তার চলক অন্তর্ভুক্ত থাকে না। আপনি নিজেরাই এটি রফতানি করতে পারবেন না এমন কোনও কারণ নেই।

bash$ echo $HOSTNAME
foobar
bash$ sh -c 'echo $HOSTNAME'

bash$ export HOSTNAME
bash$ sh -c 'echo $HOSTNAME'
foobar

আপনি আপনার স্টার্টআপ ফাইলগুলির মধ্যে একটিতে রফতানি কমান্ড যুক্ত করতে পারেন ~/.bashrc

রুবিতে (দেখানো হয়েছে):

>> require 'socket'
=> true
>> Socket.gethostname
=> "bazinga"

2
এটি gethostname()কারণে সাধারণত ব্যবহার করা ভাল better
ব্যবহারকারী1686

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