কমান্ড লাইনে বন্ধনী কীভাবে ব্যাখ্যা করা হয়?


45

কীভাবে সেট আপ করবেন সে সম্পর্কে পড়ার সময় grub, আমি একটি নিবন্ধ জুড়ে এসে দাবি করেছিলাম যে আমাকে নিম্নলিখিত দুটি বাক্য গঠন ব্যবহার করতে হবে,

echo \(hd0,0\) >> /boot/grub/grub.conf

অথবা

echo '(hd0,0)' >> /boot/grub/grub.conf

কারণ, কমান্ড লাইনে প্রথম বন্ধনীগুলি একটি বিশেষ উপায়ে ব্যাখ্যা করা হয়। প্রথম বন্ধনী সম্পর্কে বিশেষ কী? কিভাবে তাদের ব্যাখ্যা করা হয়?

উত্তর:


46

প্যারেন্টিসেস ব্যাশে সাব-শেল বোঝায়। man bashপৃষ্ঠাটি উদ্ধৃত করতে :

(list)    list  is  executed  in  a  subshell  environment (see COMMAND
          EXECUTION ENVIRONMENT below).  Variable assignments and builtin 
          commands that affect the shell's environment do not remain in 
          effect after the command completes.  The return status is the
          exit status of list.

যেখানে একটি listহ'ল কমান্ডগুলির একটি সাধারণ ক্রম।

এটি আসলে বেশ পোর্টেবল এবং ঠিক bashযদিও নির্দিষ্ট নয় । POSIX শেল কমান্ড ভাষা বৈশিষ্ট জন্য নিম্নলিখিত বিবরণ নেই (compound-list)শব্দবিন্যাস:

সাব - শেল পরিবেশে যৌগিক-তালিকা কার্যকর করুন ; দেখতে শেল এক্সেকিউশন এনভায়রনমেন্টের । পরিবর্তনশীল অ্যাসাইনমেন্ট এবং অন্তর্নির্মিত কমান্ডগুলি যা পরিবেশকে প্রভাবিত করে তা তালিকা শেষ হওয়ার পরে কার্যকর হবে না।


বাশ এবং অন্যান্য শেলগুলিতে ...?
জেসনওয়ারিয়ান

3
বাশ সেই বিষয়ে আমি জিজ্ঞাসা করছি ...
স্টিভ ব্রাউন

5
মধ্যে পার্থক্য কি $()এবং ()?
সিএমসিডিগ্রাগনকাই

5
@ সিএমসিডিগ্রাগনকাই $()হ'ল কমান্ড প্রতিস্থাপন, এটি ()একটি সাবশেল। উভয়ই কমান্ড চালায়, পার্থক্যটি আউটপুটটির সাথে ঘটে। নামগুলি প্রতীকগুলির চেয়ে অনুসন্ধান করা অনেক সহজ। এছাড়াও unix.stackexchange.com/q/213530/9537
jw013

12

বন্ধনীগুলির মধ্যে এম্বেড করা একটি কমান্ড তালিকা সাব-শেল হিসাবে চলে।

একটি সাব-শেলের ভেরিয়েবলগুলি সাব-শেলের কোডের ব্লকের বাইরে দৃশ্যমান নয়। এগুলি পিতামাতার প্রক্রিয়াতে, যে শেলটি সাব-শেল চালু করেছে তাতে অ্যাক্সেসযোগ্য নয়। এগুলি, বাস্তবে স্থানীয় ভেরিয়েবল।

লিনাক্সটোপিয়া দেখুন - অধ্যায় 20. সাবস্কেলগুলি

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