আমি নীচের সিনট্যাক্সটি ব্যাশ স্ক্রিপ্টে দেখেছি:
>$(command) &
আমি জানি যে এম্পারস্যান্ড &শেষে একটি কমান্ড পটভূমিতে চালিত করে, তবে আমি ডলার চিহ্নের সাথে কমান্ডের চারপাশে বন্ধনীগুলির সাথে এটি কখনও দেখিনি।
এটার কাজ কি?
আমি নীচের সিনট্যাক্সটি ব্যাশ স্ক্রিপ্টে দেখেছি:
>$(command) &
আমি জানি যে এম্পারস্যান্ড &শেষে একটি কমান্ড পটভূমিতে চালিত করে, তবে আমি ডলার চিহ্নের সাথে কমান্ডের চারপাশে বন্ধনীগুলির সাথে এটি কখনও দেখিনি।
এটার কাজ কি?
উত্তর:
সিনট্যাক্স দেওয়া $(command) &যেন আপনি ব্যবহার করছেন তা শুধু আউটপুট গ্রহণ ফলাফলের একই commandএবং তারপর চালানোর চেষ্টা করে কমান্ড হিসাবে। এবং এই সমস্ত ব্যাকগ্রাউন্ডে সম্পন্ন হবে, যার অর্থ কোনও টার্মিনালে দৃশ্যমান আউটপুট বা ঝুলন্ত থাকবে না।
উদাহরণস্বরূপ, যদি আমাদের mycommand.txtবিষয়বস্তুগুলির সাথে নামযুক্ত কোনও পাঠ্য ফাইল থাকে :
echo "Hello World"
তারপরে আদেশ
$(cat mycommand.txt) &
চলমান সমান হবে
echo "Hello World" &
তবে যেহেতু আমরা অ্যাম্পারস্যান্ড ( &) যুক্ত করেছি, আমরা এই কমান্ড থেকে কোনও আউটপুট দেখতে পাচ্ছি না, সুতরাং এটি উদাহরণস্বরূপ এটি বেশ কার্যকর।
$(পরিবর্তনশীল)প্রথম বন্ধনে জিনিসটির আগে ডলার সাইন সাধারণত একটি পরিবর্তনশীল বোঝায়। এর অর্থ হ'ল এই কমান্ডটি বাশ স্ক্রিপ্ট থেকে সেই পরিবর্তনশীলটির পক্ষে একটি আর্গুমেন্ট প্রেরণ করছে বা কোনও কিছুর জন্য সেই ভেরিয়েবলের মান পাচ্ছে। ভেরিয়েবলগুলি ডেকে আনার জন্য এবং ঘোষণার জন্য ব্যাশ স্ক্রিপ্টিংয়ের পার্থক্যটি এরকম হয়:
ডলারের চিহ্ন ছাড়া ভেরিয়েবল ঘোষণা করুন এবং ডলারের চিহ্ন দিয়ে এটিকে কল করুন। উদাহরণস্বরূপ, একটি স্ক্রিপ্ট যা এতে রয়েছে
#!/bin/bash
STR="Hello World!"
echo $STR
এই আউটপুট হবে
Hello World!
()- কমান্ড প্রতিস্থাপনকমান্ড প্রতিস্থাপন একটি কমান্ডের আউটপুটকে কমান্ডটি প্রতিস্থাপন করতে দেয়। কমান্ড প্রতিস্থাপন ঘটে যখন কোনও কমান্ড নীচে সংযুক্ত থাকে:
$(command)
অথবা
`command`
বাশ একটি সাব-শেল পরিবেশে কমান্ডটি প্রয়োগ করে এবং কমান্ডের বিকল্পের পরিবর্তে কমান্ডের স্ট্যান্ডার্ড আউটপুট সহ কোনও নতুন ট্রিলিং নিউলাইন মুছে ফেলা করে। এম্বেড করা নতুনলাইনগুলি মোছা হয় না তবে শব্দ বিভাজনের সময় সেগুলি মুছে ফেলা হতে পারে। কমান্ড প্রতিস্থাপন $(cat file)সমতুল্য কিন্তু দ্রুত দ্বারা প্রতিস্থাপন করা যেতে পারে $(< file)।
&- পটভূমি প্রক্রিয়াএবং তারপরে অ্যাম্পারস্যান্ড বা &প্রতীকটি যেমনটি আপনি বলেছেন, এটি পটভূমিতে চালানোর জন্য ব্যবহৃত হয়।
এটি কমান্ড হিসাবে "কমান্ড" এর আউটপুট নেয় এবং এটি পটভূমিতে চালিত হয়। এটি কার্যকরীভাবে "ইওল" এর সাথে তুলনীয়
$( ), তবে কোনও বিশ্রাম নেই। এটা ঠিক$(command) &, এটাই আমাকে বিভ্রান্ত করে।