উইন্ডোজ ও গিট ব্যাশ: প্যাশ ব্যাশ করুন উইন্ডোজ% PATH% সিস্টেম ভেরিয়েবল পড়তে


27

আমি সম্প্রতি কন্ট্রোল প্যানেল -> সিস্টেম -> উন্নত সিস্টেম সেটিংস -> পরিবেশ পরিবর্তনসমূহ -> ব্যবহারকারীর ভেরিয়েবল -> পথের মধ্যে দিয়ে ম্যানুয়ালি উইন্ডোজ PATH তে একটি ডিরেক্টরি যুক্ত করেছি। (উইন্ডোজ 7, ​​64-বিট।)

পুনরায় বুট করার পরে এবং cmd.exe শুরুর পরে, এটি echo %PATH%ইঙ্গিত করে যে এটি কাজ করেছে: আমি আউটপুটটিতে সম্প্রতি যে ডিরেক্টরিটি যুক্ত করেছি তা দেখতে পাচ্ছি।

তবে, গিট ব্যাশ শুরু করার পরে, আউটপুটটিতে echo $PATHএই ডিরেক্টরিটি অন্তর্ভুক্ত হয় না।

আমি export PATH=$PATH:/c/my/pathআমার বাশার্কে যোগ করতে পারতাম তবে আমি বরং গিট বাশকে উইন্ডোজ থেকে কেবল প্যাথএইচএইচ পেতে পারি যাতে আমাকে দুটি জায়গায় পথ যোগ করার কথা মনে রাখতে হবে না। এই কিভাবে এটি করা সম্ভব?

(আরও সাধারণ সম্পর্কিত প্রশ্নটি হ'ল, গিট বাশের $ পাথ কী সেট করে? আমি বিভিন্ন স্থানে কয়েকবার এন্ট্রি পুনরাবৃত্তি করতে দেখি, উইন্ডোজ% PATH% তে থাকা কিছু জিনিস গিট বাশের $ PATH এ আছে তবে অন্যদের মধ্যে নেই before সব আগে কি ঘটেছিল আমি গিট বাশ প্রম্পট পেয়েছি যা স্পর্শ করে $ পথ?)


প্রশ্নে পথ গুরুত্বপূর্ণ হতে পারে: C:\cygwin\usr\x86_64-w64-mingw32\sys-root\mingw\bin
আহমেদ ফসিহ

উত্তর:


6

একটি এমএসজিগিত গিট ব্যাশ সেশন স্ক্রিপ্টটি ব্যবহার করে share/WinGit/Git Bash.vbs, যা পরিবেশের ভেরিয়েবল অ্যাক্সেস বা পরিবর্তন করতে পারে না PATH( উদাহরণস্বরূপ এটি এই সম্পর্কযুক্ত vbs স্ক্রিপ্টে থাকবে )

গিট ব্যাশ সেশনটি কেবল আপনার বর্তমানের সামনে যুক্ত করবে PATH:

.:/usr/local/bin:/mingw/bin:/bin:

এটি সম্ভব যে এমএসএসজিটযুক্ত প্যাকেজযুক্ত মিংগ সেশনটি binঅন্য একটি মিংডাব্লু ইনস্টলেশন থেকে বিবেচনা করবে না : আপনি এটিতে অন্য একটি (সহজ) ডিরেক্টরি সেট করে এটি পরীক্ষা করতে পারেন PATHএবং এটি এখনও আপনার গিট ব্যাশ সেশনে দৃশ্যমান কিনা তা দেখতে পারেন। যদি তা না হয় তবে এটি একটি আরও সাধারণ সমস্যা যা আপনাকে PATH এ যুক্ত করবে এমন সমস্ত ডিরেক্টরি সম্পর্কিত concerns


1
এটি সঠিক বলে মনে হচ্ছে না। আমি যখন গিট ব্যাশ শুরু করি, এর পথটি এমন কোনও প্রক্রিয়া দ্বারা সেট আপ করা হয় যা দৃশ্যত কিছু প্রক্রিয়ার মাধ্যমে উইন্ডোজ PATH ভেরিয়েবলকে রূপান্তর করে। এটি অতিরিক্ত আইটেম যুক্ত করার মতো সহজ নয়: ';' ':' এ অনুবাদ করা হয়েছে, ড্রাইভ স্পেসিফায়ারগুলি ডিরেক্টরি নামে রূপান্তরিত হয় এবং কিছু অন্যান্য রূপান্তরও ঘটছে। কিছু ক্ষেত্রে, এই রূপান্তরটি ভুল - "c:\Program Files\Java\jdk1.8.0_25"\binআমার উইন্ডোজ পথে /c/Program Files/Java/jdk1.8.0_25"/biগিট বাশ পথে রূপান্তরিত হয় (প্রথম এবং শেষ চরিত্রটি নোট করুন) ... সুতরাং প্রশ্নটি কীভাবে ঘটে?
জুলিউস

@ জুলে এটি সত্যিই সম্ভব। অনেক পরিবর্তন হয়েছে 5 বছরে।
ভোনসি

5

অনুরূপ সমস্যার (উইন্ডোজ 10-তে এমএসওয়াইএস 2 ব্যাশ) জন্য আমার ছোট কাজটি এখানে রয়েছে।

ধারণাটি হ'ল প্রয়োজনীয় পাথগুলিকে ইউনিক্স-স্টাইলের পাথগুলিতে রূপান্তর করা এবং সেগুলিকে ব্যাশ AT PATH- এ সংযুক্ত করা, সবগুলি .bashrc এ সম্পন্ন।

উইথ পাথের জন্য প্রয়োজনীয় পাথ সংযোজন করবেন না। পরিবর্তে MSYS2_WINPATH এর মত উইন্ডোজে একটি নতুন এনভির ভার তৈরি করুন এবং সেমিকোলন-বিচ্ছিন্ন উইন্ডোজ পাথ ডিরেক্টরিগুলি এই ভেরিয়েবলটিতে যুক্ত করুন। % MSYS2_WINPATH% থেকে% PATH% এ যুক্ত করুন।

এখন এটি আপনার .bashrc- এ sertোকান -

################################## Construct PATH variable ##################################

winpath=$(echo $MSYS2_WINPATH | tr ";" "\n" | sed -e 's/\\/\\\\/g' | xargs -I {} cygpath -u {})
unixpath=''

# Set delimiter to new line
IFS=$'\n'

for pth in $winpath; do unixpath+=$(echo $pth)":"; done

export PATH=$(echo $PATH:$unixpath | sed -e 's/:$//g')
unset IFS
unset unixpath
unset winpath

################################# Constructed PATH variable #################################

এটি গিট-ব্যাশে চেষ্টা করেছে এবং এটি .bashrc এর জন্য কার্যবিধির ছাড়াই কাজ করেছে। ধন্যবাদ!
মাইকেল হাইডল

শুনে ভালো লাগল :) আপনাকে স্বাগতম!
অনুভব

2

যদি পরিবেশের PATH ভেরিয়েবলটিতে আপনার ব্যবহারকারীর PATH ভেরিয়েবলটি সংশ্লেষিত হওয়ার পরে যদি PATH মানটি দীর্ঘ হয় তবে উইন্ডোজ নীরবে ব্যবহারকারী PATH ভেরিয়েবলটিকে একত্রিত করতে ব্যর্থ হবে।

নতুন সফ্টওয়্যার ইনস্টল হওয়ার পরে এবং এটি PATH- তে কিছু যুক্ত করার পরে এটি সহজেই ঘটতে পারে, যার ফলে বিদ্যমান ইনস্টলড সফ্টওয়্যারটি ভেঙে যায়। উইন্ডোজ ব্যর্থ!

কন্ট্রোল প্যানেলে থাকা প্যাথএইচ ভেরিয়েবলগুলির মধ্যে একটি সম্পাদনা করা এবং আপনার প্রয়োজনীয় এন্ট্রিগুলি সরিয়ে ফেলার সেরা সমাধান। তারপরে একটি নতুন সিএমডি উইন্ডোটি খুলুন এবং দেখুন যে সমস্ত এন্ট্রি "প্রতিধ্বনি% PATH%" তে প্রদর্শিত হয়েছে কিনা।


1

আপনার পাথ ভেরিয়েবলের শুরুতে ডিরেক্টরিটি সরানোর চেষ্টা করুন। পি 4 ম্যান ইনস্টল করার পরে আপনার মতো আমারও একই সমস্যা ছিল। পারফোর্স ডিরেক্টরিটি পথটিতে যুক্ত করা হয়েছিল এবং পি 4 ড্রিমটি cmd.exe দ্বারা পাওয়া গেছে, তবে গিট শেল (মিংডাব্লু) নয়। ফলহীন অনুসন্ধানের পরে, আমি কেবল পরিবর্তনশীলটি সম্পাদনা করার চেষ্টা করেছি যাতে পেরফার্স ডিরেক্টরিটি আমার পথে প্রথম উপস্থিত হয়। আমি গিট শেল নিক্ষেপ করেছি $ echo $pathএবং, $ p4mergeভয়েলা , ডিরেক্টরিটি আউটপুটটিতে অন্তর্ভুক্ত করা হয়েছে , এবং p4 विसর খোলে।

এটি এক ধরনের লম্পট জবাব, যেহেতু আমি কেন এটি কাজ করে তা সম্পর্কে নির্বোধ, তবে যদি কাজের আশেপাশে অন্য কাউকে সহায়তা করে তবে দুর্দান্ত।

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