शेल स्क्रिप्टिंग - भाग 4 का उपयोग करके अपने प्रोग्राम को चरण दर चरण बनाएं

प्रकाशनों की इस श्रृंखला में पिछली प्रविष्टियों में, हमें याद है कि कैसे लागू किया जाए:

शैल स्क्रिप्टिंग

और पिछले वाले में, कैसे लागू करने के लिए शेबंग और एक बीएसएम (बैश स्ट्रिक मोड / स्ट्रिक्ट बैश मोड)।

जीएनयू / लिनक्स में एक शेल स्क्रिप्ट बनाने के लिए सर्वोत्तम अभ्यास - भाग 1

जीएनयू / लिनक्स में एक शेल स्क्रिप्ट बनाने के लिए सर्वोत्तम अभ्यास - भाग 2

यहाँ एक उदाहरण है अनुकूलन मॉड्यूल, एक उदाहरण के रूप में मेरी एक कार्यक्रम (अनुप्रयोग) में तथ्य शैल लिपि कहा जाता है लिनक्स पोस्ट इंस्टॉलेशन - बाइसेन्टेनियल स्क्रिप्ट 8.0:

यह मॉड्यूल (अनुभाग) होना चाहिए उसी के समुचित कार्य के लिए आवश्यक आधार पैकेजों को स्थापित करने के लिए, या कार्य पर्यावरण या ऑपरेटिंग सिस्टम को अपडेट करने, बनाए रखने या निष्पादित करने के लिए आवश्यक न्यूनतम क्रियाओं को निष्पादित करें ताकि सब कुछ संतोषजनक रूप से चलता रहे। मैं इस मॉड्यूल को बनाने के लिए व्यक्तिगत रूप से निम्नलिखित पंक्तियों को जोड़ता हूं:


###############################################################################
# INICIO DEL MODULO DE OPTIMIZACIÓN AL LINUX POST INSTALL - SCRIPT BICENTENARIO               
###############################################################################

# Sección que instala los paquetes bases del LPI-SB

echo -e '\a'

apt update && apt install dialog gxmessage zenity espeak gksu -y && apt install -f && dpkg --configure -a

if [ $? = 0 ]; then

     echo ""
     echo ""
     echo "#--------------------------------------------------------#"
     echo "#LA INSTALACIÓN DE LOS PAQUETES HA CULMINADO EXITOSAMENTE#"
     echo "#--------------------------------------------------------#"
     echo ""
     echo ""

     play /usr/share/sounds/info.wav 2> /dev/null

     sleep 3
     clear

else

     echo ''
     echo ''
     echo '#--------------------------------------------------------#'
     echo '# LA INSTALACIÓN DE LOS PAQUETES NO CULMINO EXITOSAMENTE #'
     echo '#--------------------------------------------------------#'
     echo ''
     echo ''

     play /usr/share/sounds/warning.wav 2> /dev/null

     sleep 3
     clear

     echo ''
     echo ''
     echo '#--------------------------------------------------------#'
     echo '#                  EJECUTE MANUALMENTE                   #'
     echo '# UN MANTENIMIENTO PREVENTIVO Y CORRECTIVO EN SU SISTEMA #'
     echo '#   EJECUTANDO LA SIGUIENTES ORDEN DE COMANDO, 1 HA 1:   #'
     echo '#                                                        #'
     echo '#                       apt update                       #'
     echo '#                     apt install -f                     #'
     echo '#                   dpkg --configure -a                  #'
     echo '#                       apt upgrade                      #'
     echo '#                                                        #'
     echo '#   LUEGO INSTALE MANUALMENTE LOS PAQUETES NECESARIOS    #'
     echo '#         CON LA ORDEN DE COMANDO SIGUIENTE:             #'
     echo '#                                                        #'
     echo '#      apt install dialog gxmessage zenity espeak -y     #'
     echo '#                                                        #'
     echo '#  AHORA, VUELVA HA INTENTAR EJECUTAR EL SCRIPT LPI-SB   #'
     echo '#--------------------------------------------------------#'
     echo ''
     echo ''

     sleep 3
     clear

     play /usr/share/sounds/info.wav 2> /dev/null

     exit 0

fi

wget -o /dev/null --user-agent="Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36" -O "/tmp/audio.mp3" "https://translate.google.co.ve/translate_tts?ie=UTF-8&q=BIENVENIDO%20AL%20LINUX%20POST%20INSTALL%20-%20SCRIPT%20BICENTENARIO&tl=es&total=1&idx=0&textlen=54&tk=511133.124198&client=t&prev=input&ttsspeed=0.24" ; play -q /tmp/audio.mp3

wget -o /dev/null --user-agent="Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36" -O "/tmp/audio.mp3" "https://translate.google.co.ve/translate_tts?ie=UTF-8&q=ESTIMADO%20USUARIO%2C%20ESPERE%20UNOS%20SEGUNDOS%20MIENTRAS%20EL%20PROGRAMA%20SE%20CARGA%20E%20INICIA&tl=es&total=1&idx=0&textlen=77&tk=337132.200023&client=t&prev=input" ; play -q /tmp/audio.mp3

###############################################################################
# FINAL DEL MODULO DE OPTIMIZACIÓN AL LINUX POST INSTALL - SCRIPT BICENTENARIO               
###############################################################################

===============

जैसा कि आप देख सकते हैं, यह मॉड्यूल एक चलाता है एप्टीट्यूड अपडेट, संकुल की स्थापना के बाद डायलॉग gxmessage zenity एस्पेक gksu, आदेशों के साथ जारी है अभिवृत्ति स्थापित -f y dpkg -configure -a। और अगर और केवल अगर सब कुछ संतोषजनक ढंग से निष्पादित किया गया है, तो ए दृश्य संदेश टर्मिनल द्वारा के साथ सफल समापन ध्वनि चेतावनी और मैं अगले चरण (मॉड्यूल / अनुभाग) के साथ जारी रखा शैल लिपि। नहीं तो ए दृश्य संदेश टर्मिनल द्वारा असफल अहसास के साथ ध्वनि चेतावनी, दूसरे के साथ फिर से प्राप्त त्रुटि से बचने के लिए मैन्युअल कार्रवाई की सिफारिश करने वाले टर्मिनल द्वारा दृश्य संदेश, और फिर के निष्पादन को समाप्त करें शैल लिपि।

मॉड्यूल की अंतिम 2 पंक्तियों के संबंध में, उन लोगों के साथ जो शुरू करते हैं wget कमांड, क्योंकि ये आवश्यक नहीं हैं, क्योंकि ये एक का हिस्सा हैं प्रायोगिग विधि मेरे द्वारा अनुकूलित ध्वनि समर्थन प्राप्त करने के लिए शैल लिपि का उपयोग कर इंटरनेट कनेक्शन के साथ Google Translate से ऑनलाइन वॉइस सिंथेसाइज़र और उसकी कामुक महिला आवाज़, और इस तरह की जगह रोबोटिक आवाज के साथ सिंथेसाइज़र (पुरुष / महिला) संकुल (कार्यक्रमों) के साथ GNU / Linux ऑपरेटिंग सिस्टम द्वारा स्थानीय रूप से प्रदान किया गया जासूसी, त्योहार, त्यौहार, mbrola, भाषण और stardict।

सिफारिश:

ध्यान से पढ़ें: «कैथेड्रल और बाजर»

कैथेड्रल और बाजार एक तरह का घोषणा पत्र है एरिक एस रेमंड वर्ष में 1.998 अपने दृष्टिकोण और व्यक्तिगत अनुभव (कार्यक्रम का निर्माण) से समझाने की कोशिश करें fetchmail) उन्होंने लिनक्स के सफल निर्माण और विकास और इसके संबंधित कार्यक्रमों के बारे में क्या माना, विशेष रूप से के बीच के अंतर के परिप्रेक्ष्य से सॉफ्टवेयर डेवलपमेंट मॉडल, जिसे उन्होंने व्यक्तिगत रूप से बुलाया: कैथेड्रल मॉडल और बाज़ार मॉडल.

उस दस्तावेज़ का मेरा सारांश विश्लेषण इस प्रकार है:

यह रीडिंग दुनिया की उस दृष्टि को दर्शाता है या प्रस्तुत करता है सॉफ्टवेयर इंजीनियरिंग "विकास की दो पूरी तरह से अलग शैली हैं," कैथेड्रल मॉडल, की दुनिया में किए गए अधिकांश विकासों पर लागू होता है वाणिज्यिक सॉफ्टवेयरके सामने बाजार मॉडल, दुनिया के और अधिक विशिष्ट लिनक्स "। जोर देकर कहा कि इन 2 मॉडल सॉफ्टवेयर डिबगिंग प्रक्रिया की प्रकृति पर विपरीत शुरुआती बिंदुओं से प्राप्त होते हैं, और उनके विशेष सिद्धांत से कि उन्होंने क्या कहा लिनुस का नियम जो निम्नलिखित कहा गया है: "पर्याप्त संख्या में आंखों को देखते हुए, सभी त्रुटियां अप्रासंगिक हैं" या दूसरे शब्दों में: "पर्याप्त संख्या में आंखों के साथ, सभी गलतियां trifles हैं।"

इसके अलावा इस पढ़ने में लेखक शब्द पर जोर देता है हैकर, जो मेरे विचार में लेखक ने एक तरह का व्यक्त किया उच्च-स्तरीय उपयोगकर्ता किसी प्रोग्राम को समझने और कुशलता से शोषण करने में सक्षम है, और संपूर्ण उपयोगकर्ता समुदाय के लिए कुशल रूप और पदार्थों में सुधार या संशोधन का पता लगाने, सुझाव देने या लागू करने में सक्षम है।। मुझे यह स्व-सुझाई गई अवधारणा बहुत पसंद आई क्योंकि मुझे लगता है कि यह सही है, हालांकि, मैं एक को छोड़ दूंगा कि मुझे बहुत पसंद है क्योंकि यह बहुत अधिक वैश्विक और / या सामान्य है।

हैकर

"लिनक्स विध्वंसक है।" क्यों? यह पढ़ने वाली पहली बात हमें बताती है कि:

तब तक मानकीकृत सॉफ्टवेयर विकास विधियों या मॉडलों की एक विशाल विविधता थी जो एक पर आधारित थी "प्रारंभ से अधिक केंद्रीकृत और नियोजित दृष्टिकोण" डिजाइनिंग के कार्य के परिणामस्वरूप सॉफ्टवेयर को संबंधित के रूप में लिया जा रहा है कारक X की ओर जाता है "कुछ महत्वपूर्ण जटिलता"। और इस तथ्य के बावजूद कि यह पहले से ही अस्तित्व में है यूनिक्स दुनियादूसरे शब्दों में, छोटे उपकरण, तेजी से प्रोटोटाइप विकास और विकासवादी प्रोग्रामिंग से मिलकर काम करते हैं, लिनक्स के तहत फ्री सॉफ्टवेयर विकास दर्शन के उद्भव ने इस मामले को दूसरे स्तर पर परिष्कार में ले लिया।

इस के परिणामस्वरूप, जबकि निजी सॉफ्टवेयर विकास से बना था "मौन और श्रद्धावान तरीका", जैसा कि आप एक निर्माण कैथेड्रल, मुफ्त सॉफ्टवेयर विकास (लिनक्स) "से बना थाधमाकेदार तरीका और कई एजेंडा (पथ) और दृष्टिकोण (प्रस्ताव) के साथ ", जैसे आप एक महान में थे बाज़ार.

अंत में, यह मुफ्त सॉफ्टवेयर उपयोगकर्ताओं के समुदाय के लिए विकसित करने वालों को समझने के लिए उनके उचित संदर्भ में तोड़ने और पचाने के लायक परिसर की एक श्रृंखला को उजागर करता है। ये परिसर हैं:

  1. सॉफ़्टवेयर में सभी अच्छे जॉब्स को प्रोग्रेमिंग से एक व्यक्तिगत समस्या को दूर करने की कोशिश की जाती है।
  2. अच्छे लेखक जानते हैं कि क्या लिखना है। सबसे महान पता क्या है (और पढ़ें)।
  3. पिछले एक को उजागर करने के बारे में सोचो: आप किसी भी तरह से समाप्त कर रहे हैं। "
  4. यदि आप सही दृष्टिकोण रखते हैं, तो इंटरेस्टिंग प्रोब्लम्स आपको मिलेंगे।
  5. जब एक कार्यक्रम में आपको कोई दिलचस्पी नहीं होती है, तो आपका सबसे बड़ा कर्तव्य यह है कि वह एक संपूर्ण व्यवसाय पर जाएं।
  6. COLLABORATORS के रूप में अपने उपयोगकर्ताओं का उपयोग कम से कम आवश्यक और प्रभावी ढंग से एक कार्यक्रम से बचने के लिए कम से कम रास्ता है।
  7. कृपया इसे भेजें। यह पता चलेगा। और अपने उपयोगकर्ताओं के लिए सुनो।
  8. दसियों और ठेकेदारों के आधार पर एक व्यापक लाभ प्राप्त करते हैं, सभी प्रस्ताव पूरी तरह से पूरे किए जाएंगे और उनका समाधान किसी के लिए भी किया जाएगा।

प्लस 11 अन्य शेष परिसर जो कि अधिक प्रकार के हैं (नैतिक), जो कहानी के साथ नहीं आता है, लेकिन प्रत्येक द्वारा व्याख्या की गई है पाठक (डेवलपर), जो मेरे विशेष मामले में, मुझे निम्नलिखित निष्कर्ष पर ले गया:

निष्कर्ष

मुझे आशा है कि आपको यह जानकारी पसंद आई होगी और यह उपयोगी है कैथेड्रल और बाज़ार का पढ़ना उन सभी के लिए एक अनिवार्य संदर्भ है, जो मुफ्त सॉफ्टवेयर में कोई भी विकास कार्यक्रम करते हैं, चाहे वह कितना भी बड़ा या छोटा क्यों न हो।

बाद में, भविष्य के पदों में हम इसका एक उदाहरण देखना जारी रखेंगे मॉड्यूल (अनुभाग) इस तरह के कार्य करते हैं:

  • पासवर्ड के साथ उपयोगकर्ता स्वचालन मोड का उपयोग करें
  • सहकारी प्रणाली वास्तुकला माप मॉड्यूल
  • कोडिंग भाषा संरचना मॉड्यूल
  • एक्सक्लूसिव इवोल्यूशन के लिए प्रोक्सी कंफिगरेशन मोड

कई अन्य के बीच!

और हमेशा की तरह, मैं सलाह देता हूं स्व-सिखाया हुआ तरीके से सीखना आज्ञाओं के बारे में: gksu, संवाद, gxmessage, zenity, espeak, play, कई अन्य के बीच टर्मिनल या उपयोगकर्ता के डेस्कटॉप के लिए ग्राफिकल इंटरफेस बनाने के लिए, ध्वनि या मल्टीमीडिया अलर्ट के साथ, और अग्रिम ज्ञान जो वे बाद में उपयोग करेंगे।

याद रखें कि ये और कुछ पर अन्य सिफारिशें मॉड्यूल, फ़ंक्शन, वेरिएबल, कमांड या एक्शन सामान्य तौर पर इसे अंजाम दिया जा सकता है कई तरीकों से, और यहाँ जो दिखाया गया है वह केवल एक है सरल तरीका, का कई संभव और संभावित तरीके जिसमें कहा गया है कार्रवाई की जा सकती है या की जा सकती है!

बस खत्म करने के लिए मैं आपको छोड़ देता हूं, ए मेरे द्वारा बनाई गई स्क्रेनेकास्ट, आपको यह दिखाने के लिए कि आप क्या करने में सक्षम होंगे, इसे पूरा करने के बाद शैल स्क्रिप्टिंग ऑनलाइन पाठ्यक्रम DesdeLinux:

एलपीआई-एसबी 8 टेस्ट स्क्रीनकैस्ट

(LINST POST INSTALL - SCRIPT BICENTENARIO 8.0.0) - भाग 2


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।