আমার টার্মিনাল প্রম্পটে "$ {ডেবিয়ান_ক্রুট: + ($ দেবিয়ান_ক্রুট) do" কী করে?


86

আমার .bashrcফাইলে আমার টার্মিনাল প্রম্পট সংজ্ঞায় অন্যান্য জিনিসগুলির সাথে আমার কাছে কোডের এই স্নিপেট রয়েছে:

${debian_chroot:+($debian_chroot)}

এটি কী করে এবং আমার এটি কী দরকার?

উত্তর:


83

এই প্রশ্নের উত্তর দেওয়ার জন্য গুরুত্বপূর্ণ অংশটি হ'ল এই স্নিপেট থেকে /etc/bash.bashrc:

if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

এর অর্থ যদি ভেরিয়েবলটি $debian_chrootখালি /etc/debian_chrootথাকে এবং ফাইলটি বিদ্যমান থাকে এবং পঠনযোগ্য হয় তবে ভেরিয়েবলটি ফাইলের সামগ্রীতে সেট করা থাকে।

এখন এটি কিসের জন্য? ফাইলটি /etc/debian_chrootযখন আপনার অন্য ডিবিয়ান সিস্টেমের ভিতরে ক্রোটেড ডেবিয়ান সিস্টেম থাকে (উবুন্টু ডেবিয়ানের উপর ভিত্তি করে থাকে)। সুতরাং এটি আরও ভাল পর্যালোচনার জন্য। আপনি ক্রুটে আছেন কিনা তা আলাদা করার জন্য।

যখন আপনার কাছে অন্য সিস্টেমের ক্রুট রয়েছে উদাহরণস্বরূপ /srv/nfs4/netboot/আপনি এই /srv/nfs4/netboot/etc/debian_chrootক্রুটের জন্য একটি নাম সেট করতে পারেন (আমার ক্ষেত্রে এটি একটি এনএফএস 4 পিএক্সই নেটবूट ড্রাইভ):

user@host:~# echo "netboot" >/srv/nfs4/netboot/etc/debian_chroot

এবং তারপরে আপনি ভিতরে প্রবেশ করবেন:

chroot /srv/nfs4/netboot/

আপনার প্রম্পটটি দেখতে এমন দেখাচ্ছে:

(netboot)user@host:~#

54

সাধারণত, এর ${var:+value}অর্থ:

if $var is defined; then use 'value'; else do nothing

debian_chrootপরিবর্তনশীল সংজ্ঞায়িত করা হয় /etc/bash.bashrcফাইল। এটি /etc/debian_chrootফাইলের বিষয়বস্তু নেয় যদি এই ফাইলটি বিদ্যমান থাকে এবং পাঠযোগ্য হয়। ডিফল্টরূপে এই ফাইলটি বিদ্যমান নেই।

আরও তথ্যের জন্য, দেখুন:

এখন, সেখানে এটি কী ঘটছে তা আরও ভালভাবে বুঝতে, টার্মিনালে নিম্নলিখিতটি করুন:

radu@Radu:~$PS1 = '$ {var: + ($ var)} \ u @ \ h: \ w \ $'
 রদু @ রাদু: ~ $ ভার = "পরীক্ষা"= '$ {var: + ($ var)} \ u @ \ h: \ w \ $' : ~ $ = "পরীক্ষা"

                  --------
                   ||
  ------------------------------------
  ||
  ভী
(পরীক্ষা) রডু @ রাদু: ~ $পরীক্ষা ) রদু @ রাদু : ~ $ var = ""
 রদু @ রাদু: ~ $ ভার = "এবং আরও কিছু"
 (এবং তাই) রদু @ রাদু: ~ $ = "" : ~ $ = "এবং তাই" এবং আরও কিছু ) রডু @ রাদু : ~ $


19

যদি পরিবেশের পরিবর্তনশীল $debian_chrootউপস্থিত থাকে এবং খালি না ${debian_chroot:+($debian_chroot)}হয় তবে প্রতিস্থাপন করা হবে ($debian_chroot)(এটি $debian_chrootপার্শ্ববর্তী পেরেনগুলির সাথে মান ))

$debian_chrootসেট করা হয় /etc/bash.bashrcবিষয়বস্তু থেকে /etc/debian_chrootযদি যে ফাইল বিদ্যমান (এটা ডিফল্ট ভাবে না) এবং $debian_chrootএখনো একটি মান নেই।

${debian_chroot:+($debian_chroot)} সাধারণত আপনার বাশ প্রম্পটটি সংজ্ঞায়িত করতে ব্যবহৃত হয়, উদাহরণস্বরূপ

PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

নামটির পরামর্শ অনুসারে আপনি etc/debian_chrootআপনার ক্রুট মূল ফোল্ডারে রেখে কোন ক্রুট আছেন তা বোঝাতে আপনি এই পরিবর্তনশীলটি ব্যবহার করতে পারেন ।

আপনি যদি না জানেন যে ক্রুট কী সম্ভাবনা রয়েছে তবে আপনার এটির প্রয়োজন নেই ;-) তবে আপনি এখনও এটি ব্যবহার করতে পারেন আপনার বাশ প্রম্পটে কিছু অন্যান্য তথ্য অন্তর্ভুক্ত করার জন্য

ডিফল্টরূপে এটি কিছুই করে না।


0

যদি আপনার কখনই ব্যবহারের প্রয়োজন হয় না debian_chrootতবে এটি ব্যবহারের মাধ্যমে কমান্ড প্রম্পটটি প্রদর্শিত হওয়ার সময়টি রাখার একটি সহজ জায়গা:

export PROMPT_COMMAND='debian_chroot=$(date +%r)'

আপনার টার্মিনালে এটি টাইপ করুন এবং সময়ের সাথে আপনার কমান্ডের প্রম্পট পরিবর্তনটি দেখুন:

rick@alien:~$ export PROMPT_COMMAND='debian_chroot=$(date +%r)'

(09:14:59 PM)rick@alien:~$ 

সময়টি সেট হয়ে যাওয়ার পরে, চলমান ঘড়িটি পেতে যা প্রতিটি দ্বিতীয় ব্যবহারের আপডেট করে:

while sleep 1;do tput sc;tput cup $(($(tput lines)-1)) 1;printf `date +%r`;tput rc;done &
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.