কমান্ডে $ () কী?


18

কি $()লিনাক্স শেল কমান্ড কি?

উদাহরণ স্বরূপ:

chmod 777 $(pwd)

1
মনে রাখবেন লাইন শেল কমান্ডের মতো কোনও জিনিস নেই । লিনাক্সের জন্য প্রচুর শেল অ্যাপ্লিকেশন রয়েছে।
স্টাফেন চেজেলাস

উত্তর:


21

এটি ব্যাকটিক্স to very এর সাথে খুব মিল `

একে কমান্ড সাবস্টিটিউশন ( পিক্সিক স্পেসিফিকেশন ) বলা হয় এবং এটি একটি সাব-শেল আহ্বান করে। $()ব্যাকটিক্স (``) এর ব্রেসেসের মধ্যে বা এর মধ্যবর্তী কমান্ডটি একটি সাবশেলে চালিত হয় এবং আউটপুটটি মূল কমান্ডে স্থাপন করা হয়।

ব্যাকটিক্স থেকে পৃথক, $(...)ফর্ম নেস্ট করা যেতে পারে। সুতরাং আপনি অন্য বিকল্পের ভিতরে কমান্ড প্রতিস্থাপন ব্যবহার করতে পারেন।

প্রতিস্থাপনের মধ্যে চরিত্রগুলি পালনের ক্ষেত্রেও পার্থক্য রয়েছে। আমি $(...)ফর্ম পছন্দ ।


4
ব্যাকটিকগুলি পাশাপাশি বাসা বাঁধতে পারে। নোট করুন যে কমান্ডের আউটপুট থেকে নতুন লাইনের অক্ষরগুলি সরিয়ে ফেলা হয়েছে।
স্টাফেন চেজেলাস

2
@ স্টাফেনচাজেলাস কীভাবে ব্যাকটিক্স বাসা বাঁধতে পারে? আপনি কি এক্সেক্সিভ পলায়ন বলতে চান?
বিশৃঙ্খলা

3
হ্যাঁ: এর মতোecho `echo \`echo foo\`` bar
স্টাফেন চেজেলাস

1
কোনও অফিসিয়াল রেফারেন্স বলছে যে ব্যাকটিকগুলি অবমূল্যায়ন করা হয়েছে?
ভিঙ্ক 17

1
এই উত্তরটি খুঁজে পেয়েছে : unix.stackexchange.com/questions/126927/… মনে হচ্ছে এগুলি অবচিত নয়। আমার উত্তর পরিবর্তন হয়েছে, ধন্যবাদ
বিশৃঙ্খলা

5

POSIX বা ইন POSIX মত শাঁস ( ksh, bash, ash, zsh, yash...), এটা ভালো হয় ``কমান্ড ভিতরে: $()মৃত্যুদন্ড কার্যকর এবং তার মান আউটপুট দ্বারা প্রতিস্থাপিত হয়। ওয়ার্ড-বিভক্তকরণ এবং ফাইলের নাম তৈরি করা $()ডাবল-কোটের ভিতরে না থাকলে সম্পন্ন হয়। এইভাবে

chmod 777 $(pwd)

এর সাথে প্রতিস্থাপন করা উচিত:

chmod 777 "$(pwd)"

বর্তমান ওয়ার্কিং ডিরেক্টরি পাথে শব্দ বিভাজন এবং ফাইলের নাম উত্পাদন এড়াতে।

বা আরও ভাল (কিছু শেলের নীচে বাদে, zsh এর মতো ডিরেক্টরিটির নতুন নামকরণ করা হয়েছে):

chmod 777 "$PWD"

যেহেতু $PWDএকটি বিশেষ পরিবর্তনশীল যা পসিক্স শেলগুলিতে বর্তমান ওয়ার্কিং ডিরেক্টরিের পথ ধরে।

বা আরও ভাল:

chmod 777 .

যেহেতু .বর্তমান ডিরেক্টরিতে এন্ট্রি হ'ল সেই ডিরেক্টরিতে একটি হার্ড লিঙ্ক।


2

এটি $()বেশিরভাগ অন্যান্য কমান্ডের ভিতরে একটি কমান্ড কার্যকর করার জন্য ব্যবহৃত হয়।

chmod 777 $(pwd)

pwdকমান্ডটি বর্তমান কার্যক্ষম ডিরেক্টরি দেয়। সুতরাং, যখন পিডাব্লুডির পুরো জিনিসটি কার্যকর করা হয় তার অবস্থানটি প্রতিস্থাপন করে এবং তার পক্ষে যুক্তি হিসাবে পরিবেশন করবে chmodএবং ফলাফলটি হ'ল আপনার বর্তমানের সমস্ত কার্যক্ষম ডিরেক্টরিটি এমন অনুমতি 777পেয়েছে যা আমার ধারণা অনুমান করে যে উত্পাদন পরিবেশে কখনও ব্যবহার করা উচিত নয়;)।

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