मैं शेल स्क्रिप्ट स्थापित करने के लिए एक आवेदन कैसे लिखूं?


39

क्या कोई जानता है कि अनुप्रयोगों की सूची स्थापित करने के लिए शेल स्क्रिप्ट कैसे लिखना है? जब भी मैं एक नया सिस्टम स्थापित करता हूं, तो हर बार हाथ से प्रत्येक एप्लिकेशन इंस्टॉल करना एक दर्द होता है।

संपादित करें: यह अभी भी मुझसे पूछता है Do you want to continue [Y/n]?। क्या स्क्रिप्ट इनपुट करने का कोई तरीका है yया इसके लिए इनपुट के लिए संकेत नहीं है?


2
वहाँ 'हाँ' नामक एक कार्यक्रम हुआ करता था जो कि बस करता था। (इसने STDOUT को लगातार 'y' लिखा।)
नाथन उस्मान

जवाबों:


38

मुझे लगता है कि स्क्रिप्ट कुछ इस तरह दिखाई देगी:

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

बस इसे सेव करें जैसे कि install_my_apps.sh, फ़ाइल के गुणों को बदलने के लिए इसे निष्पादन योग्य बनाएं और कमांड लाइन से इसे रूट के रूप में चलाएं।

( संपादित करें:-y बताता apt-getसंकेत देने के लिए नहीं है और बस से स्थापित करने के साथ पर मिलता है)


इसे निष्पादन योग्य कैसे बनाया जाए? मुझे लगता है कि मैं इसे वैसे ही sudo ./install_my_apps.sh
चलाऊंगा

मुझे यकीन नहीं है कि इसे लागू करने के लिए आवश्यक है (मैं एक अजगर लड़का हूँ; BASH में ज्यादा नहीं)। लेकिन अगर आपको चाहिए, तो इसे निष्पादन योग्य बनाया जा सकता है chmod +x ./install_my_apps.sh
माइकल क्रैंशव

या उस पर राइट क्लिक करें, "गुण" चुनें। खुलने वाली विंडो में "अनुमतियाँ" टैब पर जाएं, और चेकबॉक्स को चेक करें जो कहता है कि "प्रोग्राम के रूप में फ़ाइल को निष्पादित करने की अनुमति दें"
jfoucher

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

बस फ़ाइल में ऐप्स की एक सूची बनाएं, example.list, और चलाएँ

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
@jumpnett योग्य, मैं सूची बिंदु से चूक गया। मुझे कैफीन की कमी होने लगी है और यह पता चलता है। इसके लिए क्षमा करें। उत्तर को अपडेट कर सकते हैं।
NlightNFotis

इसके अलावा यह updateहर प्रोग्राम को स्थापित करने के लिए, समय लेने वाली है। और इसकी जरूरत है sudo
गौथियर

यह बेहद अस्वाभाविक है। साथ ही आप alias install='sudo apt-get install -y'अपने.bash_aliases
Xerus

-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
कृपया स्पष्टीकरण जोड़ें और इन सभी टाइपो को ठीक करें
ज़ेरुस

आपकी राय में कौन सी पंक्ति स्पष्टीकरण की आवश्यकता है?
यॉरदन जॉर्जिएव

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.