টার্মিনালের এক অনুরোধ (কোনও ফাইল ব্যবহার না করে) একে অপরের পরে একাধিক কমান্ড কার্যকর করতে কীভাবে?


22

আমি (1) এন্ড-লাইনের দ্বারা পৃথক পৃথক টাইপযুক্ত কমান্ডগুলির সাথে একটি ফাইল প্রস্তুত করতে পারি, (2) এটি সম্পাদনযোগ্য করে তুলতে পারি, (3) এটি কোনও ফাইল-সিস্টেম ম্যানেজার বা টার্মিনাল থেকে চালাতে পারি।

তবে এটি পুনরাবৃত্তিযোগ্য নয় এবং প্রতিবার-অন্যান্য আদেশের কমান্ডের জন্য হাস্যকর।

আমি কি পরিবর্তে একটি অনুরোধে টার্মিনালে এই আদেশগুলি টাইপ করতে পারি?

টার্মিনালের জন্য আমি শেষ-লাইন চরিত্রটি জানি না - সিটিআরএল, শিফট বা এন্টার সহ আল্ট কাজ করে না।  


1
কমান্ড লাইনে কমান্ডগুলি সেমিকোলন দিয়ে পৃথক করা যায়।
1024

উত্তর:


27

আপনি &&বা এর সাথে কমান্ড পৃথক করতে পারেন ;

  • && কেবলমাত্র পরবর্তী কমান্ডটি চালিত হয় যদি পূর্ববর্তীটি 0 টি স্ট্যাটাস দিয়ে বেরিয়ে আসে (সফল হয়েছিল):

    command1 && command2 && command3
    
  • ; আগের কমান্ডগুলি শূন্য-স্থিতি স্থিতির বাইরে চলে গেলেও:

    command1; command2; command3
    

আপনি নিজের ইচ্ছে মতো এই বিভাজকগুলিকে একত্রিত করতে পারেন।


6
জন্য command1 && command2command2 শুধুমাত্র যদি command1 সফল হয় মৃত্যুদন্ড কার্যকর করা হবে না।
সৌরাভসি

নিস আলোচনা, প্রাসঙ্গিক / অনুরূপ পোস্ট: askubuntu.com/questions/334994/... stackoverflow.com/questions/13077241/...
gevang

@ সৌরভ: আমি একটি সম্পাদনা করেছি, ধন্যবাদ, আমি কিছু শিখেছি।
মিঃ ভাইকাদজি

যদি একত্রিত হয় sudo apt upgradeএবং sudo systemctl reboot, আপনার কি দুটিবার 'সুডো' যুক্ত করতে হবে, বা এটি দ্বিতীয় কমান্ডের জন্য 'স্মরণ' করবে?
Koen

9

আপনি যদি একক অনুরোধে প্রতিটি কমান্ড নিজস্ব লাইনে টাইপ করতে আগ্রহী হন তবে আপনি নিম্নলিখিত পদ্ধতিটি ব্যবহার করতে পারেন:

  • আপনার অনুরোধটি (প্রথম লাইন) দিয়ে শুরু করুন if :; then(এর অর্থ: যদি সত্য হয় তবে তা করুন) এবং টিপুন Enter; আপনার প্রম্পট এখন পরিবর্তন >হবে এবং কিছুই কার্যকর করা হবে না।

  • আপনার আদেশগুলি টাইপ করুন, প্রত্যেকে তারপরে অনুসরণ করুন Enter

  • fi(উপরের ifশর্তের শেষে ) দিয়ে আপনার অনুরোধটি শেষ করুন এবং টিপুন Enter। এখন আপনার সমস্ত কমান্ড প্রদত্ত ক্রমে কার্যকর করা হবে।

উদাহরণ:

radu@Radu: ~ $ if :; then
> echo 'something'
> echo 'something else'
> echo 'List current directory contents:'
> ls
> echo 'Change current directory with root directory:'
> cd
> #finish
> fi
something
something else
List current directory contents:
Backups            Desktop           forma3d  Public      Untitled txt.txt~
bin                Documente         Music    Templates   Videos
configuration.php  examples.desktop  passwd~  tmp~
Downloads          file~             Poze     Ubuntu One
Change current directory with root directory:
radu@Radu: / $

if true; thenযদি ইচ্ছা হয় তবে পড়তে আরও পরিষ্কার হতে পারে। প্রথম নজরে :বিভ্রান্ত হতে পারে ;
কিরি

4

প্রথমে {নিজস্ব লাইনে একটি রাখুন।
তারপরে, আপনার আদেশগুলি সন্নিবেশ করুন।
তারপরে }একটি নতুন লাইনে চাপুন এবং টিপুন Enter। আপনার আদেশগুলি কার্যকর করা হবে।

উদাহরণ:

{
echo list
echo of
echo commands
echo to run at once
}

যা মুদ্রণ করবে (একবারে, এর মধ্যে কোনও প্রম্পট ছাড়াই):

list
of
commands
to run at once

পার্শ্ব নোট হিসাবে, { .. }বাশ কমান্ড গ্রুপিং সিনট্যাক্স। এটি প্রায়শই &&বা ||('এবং', এবং 'বা' যথাক্রমে) এর সাথে একত্রে কার্যকর


if :; thenইতিমধ্যে উল্লেখ করা একই কি ? নাকি কিছুটা আলাদা?
মিঃ ভাইকাদজি

1
@ মিঃভাইকাদজি এটি একই ফলাফল, তবে একটি ভিন্ন পদ্ধতি। if :নাল কমান্ডের উপর একটি পরীক্ষা চালায় যা সর্বদা সত্য ফিরে আসবে। { .. }কমান্ডগুলি একসাথে গ্রুপ করে ফেলুন। আমি ব্যক্তিগতভাবে { .. }মনে রাখা সহজ মনে করি।
কিরি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.