একাধিক বাস্তবায়নের সাথে কাজ করে এমন একটি পজিক্স-সামঞ্জস্যপূর্ণ উপায়ে, আমি কীভাবে বর্তমানে তাদের সংজ্ঞায়িত পরিবেশের পরিবর্তনশীলগুলির তালিকাটি তাদের মানগুলি ছাড়াই মুদ্রণ করতে পারি ?
কিছু বাস্তবায়নের ক্ষেত্রে (ম্যাক্স, ফ্রিবিএসডি / বিন / শ) কেবল export
নিজেরাই ব্যবহার করা বিলটির সাথে খাপ খায় :
$ export
FOO2
FOO
তবে কিছু অন্যান্য বাস্তবায়নের জন্য (বাশ, জেডএস, ড্যাশ) export
মানও দেখায়। বাশ সহ, উদাহরণস্বরূপ:
$ export
export FOO2='as df\
asdk=fja:\
asd=fa\
asdf'
export FOO='sjfkasjfd kjasdf:\
asdkj=fkajdsf:\
:askjfkajsf=asdfkj:\
safdkj'
$ printenv | sed -n l
FOO2=as\tdf\$
asdk=fja:\$
asd=fa\$
asdf$
FOO=sjfkasjfd kjasdf:\$
asdkj=fkajdsf:\$
\t:askjfkajsf=asdfkj:\$
safdkj$
অন্যান্য বিকল্পগুলির মতো env
বা printenv
মানগুলি ছাড়াই কেবল পরিবর্তনশীল নামগুলি মুদ্রণের বিকল্প নেই, আমি চেষ্টা করেছি এমন লিনাক্স এবং ফ্রিবিএসডি প্ল্যাটফর্মে অন্তত নয়।
অর্প / সেড / ইত্যাদিতে পাইপ দেওয়া। অথবা প্যারামিটার সম্প্রসারণ কৌশলগুলির সাথে তালিকাকে ছাঁটাই করা (যেমন, ${foo%%=*}
) গ্রহণযোগ্য, তবে এটি এমন মানগুলির সাথে কাজ করতে হবে যা লাইনগুলিকে বিস্তৃত করতে পারে এবং =
মানটির সাদা অংশ থাকতে পারে (উপরের উদাহরণটি দেখুন)।
নির্দিষ্ট শেল প্রয়োগের জন্য নির্দিষ্ট উত্তরগুলি আকর্ষণীয়, তবে আমি প্রাথমিকভাবে এমন কিছু সন্ধান করছি যা বাস্তবায়ন জুড়ে সামঞ্জস্যপূর্ণ।
export -p
?
export -p
কারণ এটি আপনাকে সমস্ত পসিক্স শেল জুড়ে একটি ধারাবাহিক আউটপুট দেয়, যা আপনি বলেছিলেন যে আপনি চেয়েছিলেন।
export -p
প্রথম প্রয়োজনীয়তার সাথে খাপ খায় না - মান ব্যতীত কেবল পরিবর্তনশীল নামগুলি মুদ্রণ করা।
export -p
। আমি এই পার্সিংটি লিখতে যাচ্ছি না, কারণ সাধারণ ক্ষেত্রে এটির জন্য যথাযথ উদ্ধৃতি পার্সিংও করতে হবে, যদি আপনার কোনও ভেরিয়েবল থাকে যার মান এরকম হয় hello\nexport var=value
। এক কয়েক অন্যান্য কমান্ডের যে সমস্ত POSIX শাঁস মধ্যে সামঞ্জস্যপূর্ণ আউটপুট দেবে env
, কিন্তু যে আউটপুট কঠিন যেহেতু এটি lacks বিশ্লেষণ করতে export =
বিট।
export -p
তবে শেল ইনপুট জন্য উপযুক্ত যে আউটপুট উত্পন্ন করতে পসিক্স দ্বারা নির্দিষ্ট করা আউটপুট সঙ্গে যান ।