কেন ব্যাশ প্রম্পট (পিএস 1) সেট করার ফলে ম্যানুয়ালি একটি # টির পরিবর্তে root থাকে?


11

আমি CentOS 6.4 এ আছি। ডিফল্টরূপে রুট ব্যবহারকারীর প্রম্পটে #প্রতীক থাকে, অর্থাত্ এটির মতো কিছু লাগে [root@myserver ~]# 

echo $PS1প্রিন্ট আউট [\u@\h \W]\$; কিন্তু যদি আমি কি PS1="[\u@\h \W]\$"(যা কিছু পরিবর্তন করা উচিত নয়, afaics), আমি একটি প্রম্পট দিয়ে শেষ যে ভালো দেখায়: [root@myserver ~]$

কেন আমি যখন নিজেকে সেট করার চেষ্টা করি (আমি শেষ পর্যন্ত এটিকে আরও দরকারী কিছুতে পরিবর্তন করতে চাই), এটি কি $আক্ষরিক অর্থে ব্যাখ্যা করে ? আমি খুঁজে পেতে পারি এমন প্রতিটি পৃষ্ঠা সম্পর্কে (যেমন, কীভাবে: পরিবর্তন / সেটআপ বাশ কাস্টম প্রম্পট (পিএস 1) ) বলে যে এর মূল ব্যবহারকারীর জন্য \$ফলাফল হওয়া উচিত #


PS1=[\u@\h \W]\$আয় -bash: W]$: command not found
চোরোবা

@ চোরোবা ওফস, দুঃখিত, ডাবল উক্তিগুলি মিস হয়েছে, এটি হওয়া উচিত ছিল PS1="[\u@\h \W]\$"
স্ট্রাইপ্যাডেগার

উত্তর:


14

আপনার প্রশ্নে, আপনি বোঝাচ্ছেন যে আপনি লাইনটি মোটেও উদ্ধৃত করছেন না; এটি স্পষ্টতই ভুল, কারণ তারপরে স্থানটি "PS1 = [\ u @ \ h" "" \ ডাব্লু] command $ "কমান্ড থেকে পৃথক করবে argument অনুগ্রহ করে বুঝতে হবে যে প্রতিটি চরিত্রই গুরুত্বপূর্ণ।

যাইহোক, আপনি সম্ভবত যা করছেন তা হ'ল একক (') এর পরিবর্তে ডাবল কোট (") ব্যবহার করছেন the আপনি যখন টাইপ করেছেন তার ব্যাখ্যার শেল এলে তারা খুব আলাদা আচরণ করে double ডাবল উদ্ধৃতি দিয়ে, এটি দিয়ে চতুর জিনিসগুলি করার চেষ্টা করবে ব্যাকস্ল্যাশ / কিছু-চরিত্রের ক্রম \ এই অ্যাসাইনমেন্টের জন্য, যেহেতু \ u, \ h, এবং \ ডাব্লু সম্পর্কে বিশেষ কিছু নেই, সেগুলি স্পর্শকৃত নয়; বর্গাকার বন্ধনীগুলির বিভিন্ন জায়গায় বিশেষ অর্থ হতে পারে, তবে এই ক্ষেত্রে নয়, সুতরাং সেগুলিও যথাযথভাবে রেখে দেওয়া হয়েছে; তবে যেহেতু এর $বিভিন্ন অর্থ রয়েছে, সেগুলি সমস্ত বিশেষ, \$অনুক্রমটিকে "ডলারের চিহ্নের বিশেষত্ব উপেক্ষা করুন এবং কেবল সেখানে রেখে দিন" হিসাবে ব্যাখ্যা করা হয়েছে এবং সেই ক্রমটি প্রতিস্থাপন করা হয়েছে একটি নো-আরওস-পার্সড একক ডলার সাইন that সবগুলির ফলাফল নির্ধারিত হয়PS1, এবং যেহেতু একটি আক্ষরিক ডলারের চিহ্ন রয়েছে, এবং \$শেলটি প্রকৃত প্রম্পটটি তৈরি করার সময় যাদুর সিকোয়েন্স নয় , আপনি কেবল ডলার চিহ্নটি পাবেন, কার্যকর-ব্যবহারকারী-নির্ভর চরিত্রটি নয়। প্রকৃত বিশ্লেষণটি কিছুটা জটিল, তবে এটি এই উদাহরণটির মূল বক্তব্য।

আপনি কী টাইপ করেছেন: PS1="[\u@\h \W]\$ "
শেলটি কী বরাদ্দ করেছে: PS1 <- "[\u@\h \W]$ "
আপনি যা চেয়েছিলেন: আপনার PS1 <- "[\u@\h \W]\$ "
কী টাইপ করা উচিত:PS1='[\u@\h \W]\$ '

আপনার পরবর্তী কী করা উচিত: শেল উদ্ধৃতি সম্পর্কে আরও জানতে এই টিউটোরিয়ালটির মতো কিছু পড়ুন ।


1
হ্যাঁ, আপনি স্পট ছিলেন, আমি ডাবল উক্তি ব্যবহার করছিলাম (মূল প্রশ্ন থেকে সেগুলি মিস করার জন্য দুঃখিত), আমার ভুলটি নির্দেশ করার জন্য ধন্যবাদ।
স্ট্রাইপ্যাডেগার

আপনি কি কখনো এমন কি কোনো কারণে ডাবল কোট ব্যবহার করতে হবে, ব্যবহার PS1="...\\\$"তা নিশ্চিত করার জন্য আক্ষরিক যুগল \$মধ্যে সংরক্ষিত হয় PS1শেল পরে ব্যাখ্যা করা জন্য।
চিপনার

0

আপনি কি রুট ব্যবহারকারীকে ব্যবহার করে sudo su, suবা রুট হিসাবে লগ ইন করে চলেছেন? idকম্পিউটারটি আপনাকে কে লগ ইন হিসাবে বিবেচনা করে তা পরীক্ষা করার জন্য ব্যবহার করুন , কারণ আপনি প্রকৃতপক্ষে কোন প্রোফাইলটি সম্পাদনা করছেন তা এটি প্রভাবিত করতে পারে।

Https://askubuntu.com/questions/305052/changing-behavior-of-bash-prompt-when-functioning-as-root- এর উত্তরগুলি দেখুন

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