মধ্যে পার্থক্য কি set, env, declareএবং exportযখন যেমন একটি Linux শেল একটি পরিবর্তনশীল সেটিং bash?
মধ্যে পার্থক্য কি set, env, declareএবং exportযখন যেমন একটি Linux শেল একটি পরিবর্তনশীল সেটিং bash?
উত্তর:
দেখে মনে হচ্ছে সেট আরও শক্তিশালী হওয়ায় সেট এবং ডিক্লেয়ার কিছুটা আলাদা।
Https://www.gnu.org/software/bash/manual/bash.html#Bash- বিল্টিনস ঘোষণা করে "ঘোষিত" দেখুন : "ভেরিয়েবলগুলি ঘোষণা করুন এবং তাদের বৈশিষ্ট্য দিন। যদি কোনও নাম দেওয়া না থাকে তবে ভেরিয়েবলের মানগুলি প্রদর্শন করুন পরিবর্তে.
Https://www.gnu.org/software/bash/manual/bash.html# এর অধীনে "সেট" সেট করুন: সেট - বিল্টিন * সেট: "এই বিল্টইনটি এত জটিল যে এটি তার নিজস্ব বিভাগের যোগ্য set সেট আপনাকে অনুমতি দেয় শেল বিকল্পগুলির মান পরিবর্তন করুন এবং অবস্থানগত পরামিতিগুলি সেট করুন, বা শেল ভেরিয়েবলের নাম এবং মান প্রদর্শন করতে "।
ENV হ'ল পরিবেশে একটি পরিবর্তনশীল: https://www.gnu.org/software/bash/manual/bash.html#Bash- ভেরিয়েবল env একটি লিনাক্স কমান্ড। আমি মনে করি এটি একটি ভাল রেফারেন্স: /unix/103467/ কি-is-env- command-doing
আমি ভাবলাম এটি রফতানির একটি ভাল ব্যাখ্যা ছিল: http://www.unix.com/302531838-post2.html
এছাড়াও: https://www.gnu.org/software/bash/manual/bash.html# বোর্ন- শেল- বুলেটিনস * রফতানি (বোর্ন থেকে): "প্রতিটি নাম পরিবেশে শিশু প্রসেসে পাস করার জন্য চিহ্নিত করুন" "
উপরের ইউআরএল থেকে ধার করা কোড:
root@linux ~# x=5 <= here variable is set without export command
root@linux ~# echo $x
5
root@linux ~# bash <= subshell creation
root@linux ~# echo $x <= subshell doesnt know $x variable value
root@linux ~# exit <= exit from subshell
exit
root@linux ~# echo $x <= parent shell still knows $x variable
5
root@linux ~# export x=5 <= specify $x variable value using export command
root@linux ~# echo $x <= parent shell doesn't see any difference from the first declaration
5
root@linux ~# bash <= create subshell again
root@linux ~# echo $x <= now the subshell knows $x variable value
5
root@linux ~#
declareএবং setএবং env? রফতানি বনাম ঘোষণা?
প্রথমত, আপনাকে অবশ্যই এটি বুঝতে হবে environment variablesএবং shell variablesএকই জিনিস নয়।
তারপরে, আপনার জানা উচিত যে শাঁসের এমন বৈশিষ্ট্য রয়েছে যা এটি পরিচালনা করে তা পরিচালনা করে। এই বৈশিষ্ট্যগুলি পরিবেশ বা শেল ভেরিয়েবল নয়।
এখন, আপনার প্রশ্নের উত্তর দিতে।
env: কোনও বিকল্প ছাড়াই বর্তমান মান ভেরিয়েবলগুলি তাদের মানগুলির সাথে দেখায় ; তবে -iপতাকা সহ একটি একক কমান্ডের জন্য পরিবেশের পরিবর্তনশীল সেট করতে ব্যবহার করা যেতে পারেset: অপশন ছাড়া, প্রতিটি শেল ভেরিয়েবলের নাম এবং মান প্রদর্শিত হয় * ~ man setরেল থেকে চালানো থেকে ; শেল অ্যাট্রিবিউট সেট করতেও ব্যবহার করা যেতে পারে । এই কমান্ডের করেনা সেট পরিবেশ কিংবা শেল পরিবর্তনশীল ।declare: কোনও বিকল্প ছাড়াই, সমান env; শেল ভেরিয়েবল সেট করতেও ব্যবহার করা যেতে পারেexport: শেল ভেরিয়েবলকে পরিবেশের পরিবর্তনশীল করে তোলেসংক্ষেপে:
set শেল এবং পরিবেশের ভেরিয়েবল সেট করে নাenv একটি একক কমান্ডের জন্য পরিবেশের ভেরিয়েবল সেট করতে পারেdeclare শেল ভেরিয়েবল সেট করেexport শেল ভেরিয়েবল পরিবেশ পরিবর্তনশীল করে তোলেনোট
declare -x VAR=VAL শেল ভেরিয়েবল তৈরি করে এবং এটিকে রফতানি করে, পরিবেশগত পরিবর্তনশীল করে তোলে।