আমি কীভাবে কোনও অ্যাপ্লিকেশন ইনস্টল শেল স্ক্রিপ্ট লিখব?


39

অ্যাপ্লিকেশনগুলির একটি তালিকা ইনস্টল করতে কীভাবে কেউ শেল স্ক্রিপ্ট লিখতে জানেন? আমি যখনই নতুন সিস্টেম স্থাপন করি তখন প্রতিটি অ্যাপ্লিকেশন হাতে ইনস্টল করতে পারা ব্যথা।

সম্পাদনা: এটি এখনও আমাকে জিজ্ঞাসা করে Do you want to continue [Y/n]?। স্ক্রিপ্ট ইনপুট করার কোনও উপায় আছে yবা এর জন্য ইনপুটটি প্রম্পট না করার জন্য?


2
'হ্যাঁ' নামক একটি প্রোগ্রাম থাকত যা ঠিক তাই করেছিল। (এটি 'Y' অবিচ্ছিন্নভাবে STDOUT লিখেছিল))
নাথান ওসমান

উত্তর:


38

আমি ধরে নেব স্ক্রিপ্টটি এরকম কিছু দেখবে:

#!/bin/sh
apt-get update  # To get the latest package lists
apt-get install <package name> -y
#etc.

এটিকে ইনস্টল_মি_এপস.এসএস-এর মতো কিছু হিসাবে সংরক্ষণ করুন, এটি কার্যকর করার জন্য ফাইলের বৈশিষ্ট্যগুলি পরিবর্তন করুন এবং কমান্ড লাইন থেকে এটি রুট হিসাবে চালান।

( সম্পাদনা:-y বলে apt-getঅনুরোধ জানাতে না এবং মাত্র ইনস্টল সঙ্গে পেতে)


কীভাবে এটি কার্যকর করা যায়? আমি ধরে নিলাম আমি এটির মতো sudo ./install_my_apps.sh
চালাব

এটি নির্বাহযোগ্য করে তোলা দরকার কিনা তা আমি নিশ্চিত নই (আমি পাইথন লোক; বেসে তেমন কিছু নেই)। তবে যদি আপনার অবশ্যই হয় তবে এটি কার্যকর করা যায় chmod +x ./install_my_apps.sh
মাইকেল ক্রেনশা

বা এটিতে ডান ক্লিক করুন, "সম্পত্তি" নির্বাচন করুন। উইন্ডোটি খোলে যা "অনুমতিগুলি" ট্যাবে যান এবং চেকবাক্সটি চেক করুন যা "প্রোগ্রাম হিসাবে ফাইল চালানোর অনুমতি দিন"
jfoucher 20

6
আমি জানি না কেন এটি সিডব্লিউ, তবে আমি -yপতাকাটি রাখার জন্য যাইহোক এটি সম্পাদনা করেছি । দ্রষ্টব্য: আপনি যদি এটি আরও পরিষ্কার করে দেখাতে চান তবে আপনি ব্যবহার করতে পারেন --yesবা তার --assume-yesজায়গায় -y
উমাং

20

ঠিক আছে, আপনার প্রশ্ন অনুসারে সবচেয়ে সহজ স্ক্রিপ্টটি হ'ল:

#!/bin/sh
LIST_OF_APPS="a b c d e"

aptitude update
aptitude install -y $LIST_OF_APPS

তবে আপনি প্রবেশ করতে পারে aptitude update && aptitude install -y a b c d e। সুতরাং আপনার প্রশ্নটি এখানে গুরুত্বপূর্ণ বিষয়টি অনুপস্থিত। যদি আরও কিছু প্রয়োজনীয়তা থাকে তবে সেগুলি ব্যাখ্যা করে ভালো লাগবে।


1
নোট করুন যে অ্যাপটি-গেটটি এখানে প্রবণতার জন্য ড্রপ-ইন প্রতিস্থাপন হিসাবে কাজ করবে, যদি এটি আপনার পছন্দ হয়। "অ্যাপটিটিউড" এর উভয় দৃষ্টান্ত কেবল "অ্যাপট-গেট" দিয়ে প্রতিস্থাপন করুন।
মাইকেল ক্রেনশা

12

উদাহরণস্বরূপ, একটি ফাইলের মধ্যে অ্যাপ্লিকেশনগুলির একটি তালিকা তৈরি করুন এবং রান করুন

cat example.list | xargs sudo apt-get -y install

এটা সত্যিই দারুন. কখনই জানতেন না কীভাবে প্যাকেজগুলির তালিকাটি এপিতে ফিড করা যায়!
থুফির

xargs কেবল কমান্ডে পাইপযুক্ত রেখাগুলি ফিড করে, কেবল তাদের আর্গুমেন্ট হিসাবে যুক্ত করে
জেরাস

2

আমি নিম্নলিখিত স্ক্রিপ্টের জন্য নির্বাচন করব: vim install

#!/bin/bash
apt-get update  # To get the latest package lists
apt-get install $1 -y

তারপরে আমার উপরের স্ক্রিপ্টটি কার্যকর করা উচিত chmod +x install। তারপর এটি ব্যবহার করার আমি টাইপ পারে: ./install <package_name>। উদাহরণ:./install clang


1
আমি ফাইলটিতে তালিকাভুক্ত সমস্ত প্রোগ্রাম চেয়েছিলাম। এই পদ্ধতিটি সহ, আমি এখনও প্রোগ্রামের নামটি একটি কমান্ড লাইন আর্গুমেন্ট হিসাবে ইনপুট করতে হবে, সুতরাং সত্যিই কোনও সুবিধা নেই।
জাম্পনেট

1
@ জম্পনেট লল, আমি তালিকা পয়েন্টটি মিস করেছি। আমি ক্যাফিনের অভাব শুরু করছি এবং এটি দেখায়। এর জন্য দুঃখিত উত্তর আপডেট করতে পারে।
NlightNFotis

এছাড়াও এটি updateপ্রতিটি প্রোগ্রাম ইনস্টল করার জন্য চালিত হতে চলেছে , সময়সাপেক্ষ। এবং এটি প্রয়োজন sudo
গৌথির

এটি অত্যন্ত অনিবার্য is আপনি পাশাপাশি alias install='sudo apt-get install -y'আপনার.bash_aliases
জেরুস

-1
#!/bin/bash

set -eu -o pipefail # fail on error , debug all lines

sudo -n true
test $? -eq 0 || exit 1 "you should have sudo priveledge to run this script"

echo installing the must-have pre-requisites
while read -r p ; do sudo apt-get install -y $p ; done < <(cat << "EOF"
    perl
    zip unzip
    exuberant-ctags
    mutt
    libxml-atom-perl
    postgresql-9.6
    libdbd-pgsql
    curl
    wget
    libwww-curl-perl
EOF
)

echo installing the nice-to-have pre-requisites
echo you have 5 seconds to proceed ...
echo or
echo hit Ctrl+C to quit
echo -e "\n"
sleep 6

sudo apt-get install -y tig

1
দয়া করে ব্যাখ্যা যুক্ত করুন এবং এই সমস্ত টাইপগুলি ঠিক করুন
জেরুস

আপনার মতে কোন লাইনের ব্যাখ্যা দরকার ?!
ইওর্ডান জর্জিভ

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