সিডি `(ব্যাকটিক) এর উদ্দেশ্য কী?


57

নিম্নলিখিতটি ফেডোরা এবং সেন্টস-এ একই আচরণ করে।

cd mydirectory

কাজ করে।

cd notadirectory

কাজ করে (বাশ থেকে ত্রুটি পায়)।

যাহোক,

cd `

আমাকে কিছু প্রম্পট দেয়:

>

আমি প্রবেশ করার জন্য ভেবেছি এমন কোনও কিছুই কোনও প্রতিক্রিয়া দেয় না, এটি কেবল আবার অনুরোধের জন্য পরবর্তী লাইনে চলে যায়। আমি ফিরে আমার প্রস্থান করতে CTRL+ ব্যবহার Cকরি root@localhost

এর উদ্দেশ্য কী এবং এর সাথে কেউ কী করতে পারে?

ধন্যবাদ!



6
সুতরাং আপনার প্রশ্নটি >ব্যাকটিকের চেয়ে আরও বেশি, যেহেতু এটি অন্যান্য পরিস্থিতিতেও ঘটতে পারে
টোবিয়াস কেইনজলার

উত্তর:


124

আপনি যা টাইপ করেছেন তা ব্যাকটিক - আপনি কমান্ড হিসাবে কী টাইপ করেন তা মূল্যায়ন করার জন্য বশ করার নির্দেশের সূচনা। >আপনি যদি এখনও পরবর্তী লাইনে কমান্ড ঢুকছে ইঙ্গিত প্রদর্শন করা হয়।

আপনি যদি ব্যাকটিকটি বন্ধ করেন আপনি দেখতে পাবেন পুরো কমান্ডটি চলবে। যেমন

~$ cd `
> echo /var`
/var$

17
আপনি এমনকি তাদের বাসা করতে পারেন। কিছুটা বাস্তব উদাহরণের জন্য: cd `dirname \`which ls\``= সিডি ডিরেক্টরিতে যেখানে "এলএস" বাইনারি রয়েছে to (অর্থাত cd /binযেহেতু এটা /bin/ls): [সম্পাদনা রাম রাম, যে markdown পলায়নের কঠিন]
MSalters

54
@MSalters আপনি সম্ভবত কারণে আধুনিক ব্যাশ পছন্দ উপর পদস্খলিত করেছি $()করতে ``। আপনার উদাহরণ (আরও সঠিক উদ্ধৃতি) হয়ে উঠবে cd "$(dirname "$(which ls)")"যা অনেক কম উন্মাদ is
মুজার

31
@ মুজার এটি কেবল বাশ নয় যে এটি পছন্দ করে তবে ব্যাককোটগুলি ব্যবহার করার জন্য এটি$() পসিক্স স্পেসিফিকেশনে প্রস্তাবিত
স্টারফিশ

59

জনসির উত্তর ইতিমধ্যে ব্যাকটিকটি ব্যাখ্যা করে। তবে আপনি যা নিয়ে ভাবছেন তা হ'ল >প্রম্পট। এই ধারাবাহিকতা প্রম্পট, এবং এটি শুধুমাত্র একটি ব্যাকটিক দ্বারা আলোড়ন সৃষ্টি করা হয় না, কিন্তু সবসময় যখন আপনার শেল পরিষ্কারভাবে জানে আপনি একটি কমান্ড লিখে না কাজ সম্পন্ন হয়। সবচেয়ে সহজ উদাহরণটি \একটি ইনপুট লাইনের শেষে সুস্পষ্ট লাইন ধারাবাহিকতা স্থাপন করা (যা দীর্ঘ ইনপুটকে বিভক্ত করতে সহায়তা করে):

$ echo \
> hallo

মনে রাখবেন যে ঠিক PS1কমান্ড প্রম্পটের চেহারা নিয়ন্ত্রণ করে, আপনি PS2ধারাবাহিকতা প্রম্পটও পরিবর্তন করতে পারেন , যেমন

$ export PS2="(cont.) "
$ echo \
(cont.) hallo

ধারাবাহিকতা হওয়ার অনেক কারণ রয়েছে। একটি একক ব্যাকটিক অসম্পূর্ণ, তবে আপনিও এরকম কিছু প্রবেশ করতে পারেন

ls -l `which cp`

একক লাইনে (পার্শ্ব-নোট: এটি ব্যবহার করার পরামর্শ দেওয়া হয়েছে $(এবং )পরিবর্তে, যেহেতু প্রথম বন্ধনী এটি স্পষ্ট করে তোলে যেখানে প্রসারণ শুরু হয় এবং শেষ হয়, যখন একক ব্যাকটিকগুলি কোথায় কার অনুপস্থিত তা দেখতে আরও জটিল করে তোলে। এবং বাসা বাঁধছে ...)। ধারাবাহিকতা প্রম্পটের অন্যান্য সম্ভাব্য কারণগুলি:

  • doneপরে whileবা অনুপস্থিতfor
  • একটি fiপরে অনুপস্থিতif
  • esacপরে অনুপস্থিতcase
  • একটি অনুপস্থিত বন্ধনী প্রথম বন্ধনীর উদাহরণ, যেমন সাবশেলে (cd $HOME; cat .bashrc)
  • পাইপিংয়ের পরে |শর্তসাপেক্ষ কার্যকর করার পরে একটি অনুপস্থিত কমান্ড ||এবং &&( &যদিও এটি কেবল পটভূমিতে কমান্ডটি চলমান নয়)
  • অনুপস্থিত সমাপনী উদ্ধৃতি ( 'বা ")

কৌতূহলীভাবে যথেষ্ট, }ভেরিয়েবল প্রসারণের পরে একটি অনুপস্থিত বন্ধনীও ${একটি ধারাবাহিকতা প্রম্পট সৃষ্টি করে, তবে spaceোকানো জায়গার কারণে ব্যর্থ হবে:

$ echo ${
> PS2}
bash: ${
PS2}: bad substitution

2
এবং একই জিনিসটি উদ্ধৃতিগুলি ব্যবহার করার সময় ঘটে :)
স্টিইন শ্যাট

1
আমি যখনই সাইডবারে এ প্রশ্নের উত্তরটি দেখেছি তখনই আমি ইতিমধ্যে জানতাম তবে খুব সুন্দর গভীর-উত্তরের জন্য আমি আপনাকে একটি অতিরিক্ত, তবুও কাল্পনিক +1 দিতে চেয়েছিলাম। এটি এমন ধরণের সামগ্রী যা স্ট্যাক এক্সচেঞ্জ সাইটগুলিকে দুর্দান্ত করে তোলে। সুতরাং ... ধন্যবাদ এবং দুর্দান্ত থাকুন।
Unkwntech

4

এর অর্থ হল আপনার আদেশটি এখনও সম্পূর্ণ হয়নি not আসলে, ব্যাকটিক অক্ষরটি `একটি ইনলাইন কমান্ডটি সীমাবদ্ধ করতে ব্যবহৃত হয়।

উদাহরণ:

cd /tmp # Go to /tmp
pwd # Prints the current working  directory
ls `pwd` # Lists the content of the current working directory

0

ব্যাকটিক কমান্ড প্রতিস্থাপন শুরু / শেষ করে। শেলটি ব্যাকটিক্সের ভিতরে কমান্ডটি পড়ে, ফলাফলগুলি ব্যাখ্যা করে এবং ফলাফলগুলিকে কমান্ডের মধ্যে রাখে। যেমন :. ls which cpফলস্বরূপ "যা সিপি" নির্বাহ করা হচ্ছে এবং সেই আদেশের ফলস্বরূপ, / বিন / সিপি ls কমান্ডের আর্গুমেন্ট হিসাবে ব্যবহৃত হবে। এই আচরণটি আরও স্পষ্ট এবং পঠনযোগ্য cm (সেন্টিমিটার) কমান্ড প্রতিস্থাপনের পক্ষে বঞ্চিত হয়।

সিডি টাইপ করার সময় `শেলটি একটি কমান্ড অনুসরণ করার জন্য এবং একটি ব্যাকটিকের সাথে ঘনিষ্ঠ হওয়ার প্রত্যাশা করে।

ধনুর্বন্ধনী ব্যবহার করে ভেরিয়েবল প্রসারণের ক্ষেত্রে শেলটি ধারাবাহিকতা প্রম্পট উপস্থাপন করে কারণ সম্প্রসারণের আগে those ধনুর্বন্ধনীগুলি বর্ণনামূলকভাবে মূল্যায়ন করা হয়।

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