কোনও পরিবেশগত ভেরিয়েবল ছাড়া শেল স্ক্রিপ্ট চলছে


17

যেমনটি আমি জানি, সদ্য চলমান শেল স্ক্রিপ্টটি পরিবেশগত ভেরিয়েবলের উত্তরাধিকার সূত্রে প্রাপ্ত। এটি ব্লক করার কোন উপায় আছে? (পরিবর্তনশীল উত্তরাধিকার ছাড়াই চালিত শেল)

উত্তর:


21

দেখে মনে হচ্ছে আপনি নিজের স্ক্রিপ্টটি উপস্থাপন করতে পারেন env -iযা স্ক্রিপ্টটি চালানোর আগে পরিবেশ সাফ করবে:

env -i sh test.sh

থেকে man env:

-i, --ignore-environment
              start with an empty environment

আপনি কেন এটি করতে চাইবেন তা নিশ্চিত নয় ...


ধন্যবাদ। এই কাজ! আইডিইর কনফিগারেশন পরিবেশগত ভেরিয়েবলগুলি প্রভাবিত না করে আইডিইতে বিল্ড স্ক্রিপ্ট কল করার জন্য আমার এটি দরকার। তবে এখনও লক্ষ্য থেকে অনেক দূরে। এটি আপনার কৌতূহলকে সাহায্য করতে পারে!
Eonil

অন্য ব্যবহারের কেস যুক্ত করতে: আমি বর্তমানে ব্যাশের বিকল্প হিসাবে মাছ এবং zsh এর মূল্যায়ন করছি। তবে আমি প্রার্থী শেলটিকে আমার লগইন শেল হিসাবে প্রচার করতে যথেষ্ট প্রস্তুত নই (যেমন chsh ...আমি যদি কেবলমাত্র একটি টার্মিনাল উইন্ডোটি খুলি এবং চালনা করি zshবা fish( -lকোনও ব্যাপার না বা না করে) এটি আমার পরিবেশকে সমস্ত ধরণের ভেরিয়েবলের সাথে দূষিত করে শেল আমি এটা শুরু সঙ্গে কৌতুক করছেন। env -cআমার জন্য এই সমস্যা solves আমি না। env -i TERM=xterm-256color $(which fish)
Paidhi

এটি কার্যকর যদি আপনার ক্রোন টাস্ক থাকে যা ব্যর্থ হয় কারণ পরিবেশটি সঠিকভাবে কনফিগার করা হয়নি এবং আপনার এটি পরীক্ষা করা দরকার; আপনার স্ক্রিপ্টগুলি পরিবেশ সেটিং সম্পর্কে অনুমান করে কিনা তা পরীক্ষা করার একটি ভাল উপায়। ধন্যবাদ!
22:21

স্ক্রিপ্টে কোনও পরিবেশগত নির্ভরতা নেই তা নিশ্চিত করার জন্য এটি পর্যায়ক্রমে কিছু কাজের পরীক্ষা করা (যেমন ক্রোন জবস) পরীক্ষা করা এটির অন্য একটি সম্ভাব্য জায়গা। কমান্ডগুলির সাথে একই জিনিস যা পুতুলের ম্যানিফেস্টে "এক্সিকিউটি" রিসোর্সে চালিত হবে।
টমি দ্যকিড

1

একটি সম্ভাবনা (যদিও এটি দেখতে দেখতে কুৎসিত দেখাচ্ছে):

exec -c $SCRIPTখালি পরিবেশের সাথে CRIP স্ক্রিপ্ট শুরু হবে। ( man bashঅনুসন্ধান দেখুন exec \[-cl\])।


1
এটি env -i এর সাথে প্রায় সমানভাবে কাজ করেছিল, তবে আমি env -i ব্যবহার করা পছন্দ করি কারণ এক্সিকিউটর বাকী স্ক্রিপ্টের সঞ্চালন বন্ধ করে দেয়।
Eonil

-1

আমি যতদূর জানি, উত্তরটি "না"। আপনি স্ক্রিপ্টের মধ্যেই পরিবেশগত পরিবর্তনগুলি ওভাররাইড করতে পারেন। স্ক্রিপ্টটি চালু হয়ে গেলে পরিবেশের ভেরিয়েবলের মানটির মূল মানটিতে ফিরে যেতে হবে। আপনার সম্ভবত শিশু প্রক্রিয়া হিসাবে স্ক্রিপ্টটি চালানো দরকার:। This.script.sh & যাতে আপনার পরিবেশের ভেরিয়েবলগুলি তাদের মূল মূল্যের সাথে পুনরায় সেট করতে আপনার শেলটি একবারে স্ক্রিপ্টটি চালানো না যায়।

সম্পাদনা:

পূর্ববর্তী পোস্টার থেকে মনে হবে এটি সম্ভব না হওয়ায় আমি ভুল।

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