আমি মনে করি আপনি এটি চান:
myCommand1 & myCommand2 &
এটি অ্যাম্পারস্যান্ড অনুসারে এটি শুরু হয় myCommand1এবং ব্যাকগ্রাউন্ডে প্রেরণ করে, তত্ক্ষণাত শুরু হয় myCommand2এবং এটিকে ব্যাকগ্রাউন্ডে প্রেরণ করে, সুতরাং শেলটি আবার মুক্তি দেয় le
তালিকাসমূহ
আরও ভাল বোঝার জন্য আপনি এখানে কমান্ড দ্বারা পাইপলাইন বিকল্প করতে পারেন ।
একটি তালিকা অপারেটরগুলির মধ্যে একটি দ্বারা পৃথক পৃথক এক বা একাধিক পাইপলাইনগুলির ক্রম ; , & , && , বা || , এবং বিকল্পগুলির মধ্যে একটি দ্বারা অবসান
; , এবং , বা ।
যদি কমান্ডটি কন্ট্রোল অপারেটর & এর মাধ্যমে সমাপ্ত হয় , তবে শেলটি একটি সাবশেলের পটভূমিতে কমান্ডটি কার্যকর করে। শেলটি কমান্ডটি শেষ হওয়ার জন্য অপেক্ষা করে না, এবং ফেরতের স্থিতি 0 হয় কমান্ড a দ্বারা পৃথক ; ধারাবাহিকভাবে মৃত্যুদন্ড কার্যকর করা হয়; শেল প্রতিটি কমান্ডের জন্য ঘুরে দাঁড়ানোর জন্য অপেক্ষা করে। রিটার্নের স্থিতি হ'ল শেষ আদেশের নির্বাহ স্থিতি।
AND এবং OR তালিকা হল && এবং || দ্বারা পৃথক করা এক বা একাধিক পাইপলাইনগুলির ক্রম কন্ট্রোল অপারেটর যথাক্রমে।
উৎস:man bash
উদাহরণস্বরূপ এটি ভাঙ্গা যাক। আপনি কমান্ডগুলি সংযুক্ত করে এবং এর মধ্যে একটির সাথে পৃথক করে একটি তালিকা তৈরি করতে পারেন ; & && ||:
command1 ; command2 # runs sequentially
command1 && command2 # runs sequentially, runs command2 only if command1 succeeds
command1 || command2 # runs sequentially, runs command2 only if command1 fails
command1 & command2 # runs simultaneously
আপনি এই এক সঙ্গে তালিকা বিনষ্ট করতে পারেন: ; & <newline>।
সাধারণত আপনি একটি কমান্ড বা একটি টিপুন দ্বারা একটি তালিকা চালিত Enter, যে সমান <newline>। সেমিকোলন ;বিশেষত স্ক্রিপ্টগুলিতে একই উদ্দেশ্যটি সরবরাহ করে। আম্পারস্যান্ড &তত্ক্ষণাত শেলটি প্রকাশ করে পটভূমির একটি সাব-শেলের কমান্ড (গুলি) শুরু করে।
আপনি আরও গোষ্ঠী তালিকার জন্য বৃত্তাকার ()বা কোঁকড়ানো বন্ধনী ব্যবহার করতে পারেন {}, পার্থক্য হ'ল বৃত্তাকার বন্ধনীগুলি একটি সাবশেল বানায় এবং কোঁকড়াগুলি তা দেয় না। কোঁকড়া বন্ধনী প্রথম এবং একটি সেমিকোলন পরে ক্লোজিং বন্ধনী আগে একটি নতুন লাইন প্রয়োজন। উদাহরণ স্বরূপ:
# if c1 succeeds start a shell in the background
# and run c2 and c3 sequentially inside it
c1 && ( c2 ; c3 ) &
# run c1 and if it succeeds c2 sequentially as a group command
# if c1 or c2 fail run c3 in the background
{ c1 && c2 ;} || c3 &
এটি বেশ জটিল হয়ে উঠতে পারে, আপনি যদি ব্যবহারের বিষয়ে অনিশ্চিত হন trueএবং নির্মাণটি falseপ্রত্যাশার মতো কাজ করে কিনা তা পরীক্ষা করে দেখার জন্য:
$ { true && true ;} || echo 2
$ { true && false ;} || echo 2
2
কাজ নিয়ন্ত্রণ
jobsকমান্ডের দৌড়াচ্ছে যে বা সম্প্রতি বর্তমান শেল সমাপ্ত হয়েছে পটভূমি কাজ একটি তালিকা। কাজ নিয়ন্ত্রণের জন্য অনেকগুলি কীবোর্ড শর্টকাট এবং কমান্ড রয়েছে:
- Ctrl+ স্থগিত চরিত্রটি Zটাইপ করে যার ফলে অগ্রভাগে চলমান প্রক্রিয়াটি বন্ধ হয়ে যায়, এটি সমাপ্ত হয় না, তবে তালিকায় থাকে
jobs
- Ctrl+ বিলম্ব স্থগিত করা অক্ষর Yটাইপ করে যা টার্মিনাল থেকে ইনপুট পড়ার চেষ্টা করার সময় অগ্রভাগে চলমান প্রক্রিয়াটি বন্ধ করার কারণ ঘটায়
fg= %যদি প্রয়োজন হয় তবে এটি শুরু করে অগ্রভাগের মধ্যে একটি প্রক্রিয়া নিয়ে আসে, আপনি প্রক্রিয়াটি নীচে উল্লেখ করতে পারেন:
% # last process in the jobs list
%1 # 1st process in the jobs list
%abc # process beginning with the string “abc”
%?abc # process containing the string “abc” anywhere
bg= %&প্রয়োজনে ব্যাকগ্রাউন্ডে এটি প্রক্রিয়া শুরু করে:
%& # last process in the jobs list
%1& # 1st process in the jobs list
%abc& # process beginning with the string “abc”
%?abc& # process containing the string “abc” anywhere
wait একটি পটভূমি প্রক্রিয়া শেষ হওয়ার জন্য অপেক্ষা করে এবং এর সমাপ্তির স্থিতি ফেরত দেয়:
wait %1 # 1st process in the jobs list
কল্পনা করুন যে আপনি একটি দীর্ঘ প্রক্রিয়া শুরু করেছেন ( jobsএটি 3 নম্বরটি প্রকাশ করে) এবং তারপরে আপনি বুঝতে পারেন যে কম্পিউটারটি শেষ হয়ে গেলে স্থগিত করা উচিত, এছাড়াও echoপ্রক্রিয়াটি সফল না হলে একটি বার্তা:
wait %3 || echo failed ; systemctl suspend