আপনি যদি একটি নির্দিষ্ট তৃতীয় পক্ষের অ্যাপের কথা বলছেন তবে পরিবেশের পরিবর্তনশীল ব্যবহার করুন। যখন তারা নতুন প্রক্রিয়াগুলি চালিত করেন তখন বেশিরভাগ প্রোগ্রামগুলি অপরিবর্তিত পুরো পরিবেশ জুড়ে চলে যাবে।
সুতরাং, আপনি যাচাই করতে পারেন এমন একটি কাস্টম এনভির সাথে এই অ্যাপ্লিকেশনটি শুরু করুন । উদাহরণস্বরূপ এর মতো alias vs=RUNNING_FROM_VSCODE=1 VSCodeএকটি উপকরণ তৈরি করুন, বা এটির মতো একটি র্যাপার স্ক্রিপ্ট তৈরি করুন:
#!/bin/sh
export RUNNING_FROM_VSCODE=1
exec VSCode "$@"
তারপরে আপনার .bashrc, আপনি করতে পারেন
if (($RUNNING_FROM_VSCODE)); then
echo "started from inside VSCode"
# RUNNING_FROM_VSCODE=0 # optional if you only want the immediate child
fi
বাশ পাটিগণিত বিবৃতিটি (( ))সত্য যদি অভিব্যক্তিটি একটি শূন্য-না-ও পূর্ণসংখ্যার (যে কারণে আমি 1উপরে ব্যবহার করেছি ) মূল্যায়ন করে । খালি স্ট্রিং (একটি আনসেট এনভির ভারের জন্য) মিথ্যা। এটি বাশ বুলিয়ান ভেরিয়েবলের জন্য দুর্দান্ত তবে আপনি এটি খুব সহজেই ব্যবহার করতে পারেন trueএবং এটি একটি traditionalতিহ্যবাহী পসিক্স দিয়ে পরীক্ষা করতে পারেন
if [ "x$RUNNING_FROM_VSCODE" = "xtrue" ]; then
echo "started from inside VSCode"
fi
যদি আপনার অ্যাপ্লিকেশনটি বেশিরভাগ ক্ষেত্রে তার বাচ্চাদের জন্য পরিবেশ সাফ করে , তবে এখনও $PATHঅপরিবর্তিত থাকে তবে আপনি এটি নিজের মোড়কে ব্যবহার করতে পারেন:
#!/bin/sh
export PATH="$PATH:/dev/null/RUNNING_FROM_VSCODE"
exec VSCode "$@"
এবং এটি পাথের মতো [[ "${PATH%RUNNING_FROM_VSCODE}" != "$PATH" ]]প্রত্যয়টি প্যাথ থেকে প্রত্যয় ছোঁড়ে কিনা এটি পরিবর্তন করে কিনা তা পরীক্ষা করার জন্য বাশের মতো প্যাটার্ন-ম্যাচের সাথে এটি পরীক্ষা করুন।
প্রোগ্রামটি খুঁজে পাওয়া যায় না এমন বাহ্যিক কমান্ডগুলির সন্ধান করার সময় এটি নির্দোষভাবে একটি অতিরিক্ত ডিরেক্টরি অনুসন্ধান করতে হবে। /dev/nullঅবশ্যই কোনও সিস্টেমে ডিরেক্টরি নয়, সুতরাং এটি একটি বোগাস ডিরেক্টরি হিসাবে ব্যবহার করা নিরাপদ যা ENOTDIRপাথ অনুসন্ধানগুলি পূর্বের পাথের এন্ট্রিগুলিতে তারা যা সন্ধান করছে তা যদি খুঁজে না পায় তবে দ্রুত ফল পাওয়া যাবে।
envকমান্ড খোলার চেষ্টা করুন । আমরা ব্যবহার করতে পারি এমন কোনও ভিএস-নির্দিষ্ট ভেরিয়েবল আছে কিনা তা দেখুন।