একাধিক কমান্ড কার্যকর করতে একটি .sh চালানো


9

আমি কৌতূহল ছিলাম যে আমি কীভাবে শেল স্ক্রিপ্টের মাধ্যমে একাধিক কমান্ড চালাব।

উদাহরণস্বরূপ, কেবল এটি চেষ্টা করার জন্য, আমি একটি .ডেস্কটপকে একটি .sh এর সাথে সংযুক্ত করতে সক্ষম হতে চাই যা সমস্ত আপডেট কোড চালাবে তাই আমাকে এটি টাইপ করতে হবে না। আমি জানি যে কীভাবে একক কমান্ডটি .sh এর মাধ্যমে কার্যকর করা যায়, একাধিক নয়।

কোনভাবে?

উত্তর:


10

সত্যই সহজ - আপনার কমান্ডগুলি পৃথক করতে হবে। উদাহরণস্বরূপ:

#!/bin/bash
sudo apt-get update
sudo apt-get upgrade

প্যাকেজ তালিকাগুলি এবং তারপরে প্যাকেজগুলি আপডেট করবে। আরেকটি সম্ভাবনা এই হল (সম্ভবত ভাল, যেমন && শুধুমাত্র অনুমতি দেবে upgradeকমান্ড যদি চালানোর জন্য updateপ্রস্থানের সফলভাবে) :

#!/bin/bash
sudo apt-get update && sudo apt-get upgrade

প্যাকেজগুলির তালিকা আপডেট করার জন্য কমান্ডগুলি চালানো উচিত এবং তারপরে প্যাকেজটি নিজেরাই। এটি কোনও পাঠ্য ফাইলে সংরক্ষণ করা দরকার (যেমন updatescriptহোম ডিরেক্টরিতে)। এরপরে আপনি এটি চালিয়ে এক্সিকিউটেবল করতে পারেন:

 chmod +x ./updatescript

বা ফাইলটিতে ডান ক্লিক করে এবং এর বৈশিষ্ট্যগুলিতে এটি সম্পাদনযোগ্য করে তোলে:

এবং এটি দিয়ে টার্মিনালে এটি চালান:

 ./updatescript

মন্তব্য):

কমান্ডের -yসাহায্যে একটি বিকল্প ( ) উপলব্ধ রয়েছে upgradeযাতে প্যাকেজগুলি আপগ্রেড করার আগে এটি অনুরোধ করা হয় না। apt-getপ্যাকেজগুলি আপগ্রেড করার আগে এটি কী করছে তা যাচাই করা ভাল ধারণা , কারণ এটি বোকা কিছু বা আপনি এটি করতে চান না এমন কিছু করতে পারে। এর মতো বিকল্পগুলির জন্য আরও তথ্য চালিয়ে পাওয়া যাবে man apt-get

এর অর্থ হ'ল স্ক্রিপ্টটি চালানোর জন্য টার্মিনালটি ব্যবহার করা আরও আদর্শ, আপনি এটি কী আপডেট করছে তা যাচাই করতে পারেন এবং তারপরে এটি চালাতে পারেন। আপনি যদি আপডেটগুলি চালনার জন্য কোনও জিইউআই উপায় চান, তবে সফ্টওয়্যার-কেন্দ্রটি এটির মতোই ব্যবহার করুন।


5

@ উইলফের দ্বারা উত্তরের উত্তরে কয়েকটি পয়েন্ট যোগ করতে,

আপনি কোনও কারণে চাইলে আপনি প্যারালেলে কমান্ডগুলি চালনা করতে পারেন, উদাহরণস্বরূপ, ওপেনবক্সের জন্য কোনও autostartস্ক্রিপ্ট এটির মতো দেখাবে:

#!/bin/bash

nitrogen --restore &
tint2 &
tilda

এটি পটভূমি ব্যবহার করে একটি পটভূমি চিত্র সেট করবে nitrogen, প্যানেলটি tint2শুরু করবে এবং কোয়েক 3-শৈলীর ড্রপডাউন কনসোল শুরু করবে tilda, সমস্ত একই সাথে। আপনি যদি পরেরটি চালু করার আগে আপনার কোনও প্রোগ্রাম শেষ করার প্রয়োজন না হয় তবে এটি কার্যকর। যদিও এর জন্য apt-get updateএবং apt-get upgradeযদিও না!

&প্রতিটি লাইনের শেষে সাইনটি লক্ষ্য করুন । এর ফলে শেলটি সেই প্রক্রিয়াটিকে পটভূমিতে কাঁটাতে এবং কার্যকর করা চালিয়ে যাবে। এটি কীভাবে পৃথক &&, যা মূলত একটি andচিহ্ন, command_1 && command_2এটি কার্যকর করবে command_1এবং এটি যদি সাফল্যের সাথে উপস্থিত হয় তবে কেবল চালানো হবে command_2, যখন command_1 & command_2প্রথমটির পরে দ্বিতীয়টি শুরু হবে।


এছাড়াও, আপনি সিরিয়ালভাবে এগুলি কার্যকর করতে কমান্ডগুলি কেবল স্ট্যাক করে রাখতে পারেন:

#!/bin/bash

apt-get update
apt-get upgrade

এই চালানো হবে apt-get upgradeপরে apt-get updateহয় সমাপ্ত , কিন্তু এর ফলে নির্বিশেষে। এমনকি যদি, উদাহরণস্বরূপ, আপডেটটি কোনও ত্রুটিযুক্ত নেটওয়ার্ক ত্রুটি সহ ছেড়ে যায়, তবে আপগ্রেডটি চালানো হবে be

এছাড়াও আপনি ব্যবহার করে আপনি একটি লাইন করতে পারেন, ;সাইন ইন: apt-get update ; apt-get upgrade। আবার, এই সমাধানটি এই বিশেষ আদেশগুলির জন্য অনুকূল নয় , তবে এটি অন্যান্য পরিস্থিতিতে কার্যকর হতে পারে।


একটি দ্রুত চূড়ান্ত পয়েন্ট, আপনি এর &&মতো লাইনগুলিও ভাঙ্গতে পারেন :

command_1 &&
command_2

এই হিসাবে একই হবে command_1 && command_2

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