Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> बाश प्रोग्रामिंग

LinuxScrew का Linux शेल/बैश स्क्रिप्टिंग टिप्स

लिनक्स में अपनी शेल स्क्रिप्ट लिखते समय ध्यान रखने योग्य कुछ आसान टिप्स यहां दी गई हैं।

शैल स्क्रिप्ट Linux (और MacOS, और अब Windows, Linux के लिए Windows सबसिस्टम के साथ) में आपके वर्कफ़्लो को स्वचालित करने का एक बहुमुखी तरीका है। शेल स्क्रिप्टिंग सिंटैक्स और व्यवहार की अपनी ख़ासियतें हैं, और ऐसे उपयोगी शॉर्टकट हैं जिनका उपयोग आप अपनी स्क्रिप्ट को सरल बनाने के लिए भी कर सकते हैं।

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

ये युक्तियां इंटरनेट से एकत्र की गई हैं, जिनमें से कुछ मेरे द्वारा ही दी गई हैं।

त्रुटि होने पर भी बैश स्क्रिप्ट चलती रहेंगी!

यह समस्या पैदा कर सकता है, खासकर अगर उपयोगकर्ता इनपुट स्वीकार करना और फाइलों के साथ काम करना। इस व्यवहार को रोकने के लिए सेट कमांड जोड़ें

set -eu

…आपकी स्क्रिप्ट के आरंभ में। - त्रुटि होने पर स्क्रिप्ट को बाहर निकलने के लिए कहता है, और –u यदि कोई चर सेट नहीं है तो स्क्रिप्ट को बाहर निकलने के लिए कहता है।

हमेशा शेबैंग शामिल करें

शेबैंग को हमेशा अपनी स्क्रिप्ट की पहली पंक्ति के रूप में शामिल करें:

#!/bin/sh

यह सिस्टम को बताता है कि स्क्रिप्ट की व्याख्या के लिए किस शेल का उपयोग किया जाना चाहिए, और संगतता के लिए महत्वपूर्ण है। बैश के लिए लिखी गई एक स्क्रिप्ट Zsh के भीतर चलने पर अलग तरह से व्यवहार कर सकती है, लेकिन शेबैंग को शामिल करके, आप यह सुनिश्चित कर सकते हैं कि इसकी सही शेल के साथ व्याख्या की गई है।

कभी उपयोगकर्ता नहीं sudo आपकी स्क्रिप्ट में

यदि आप कोई स्क्रिप्ट चलाते हैं तो यह अस्पष्टता का कारण बनता है, और पाइप और पुनर्निर्देशन का उपयोग करते समय समस्याएं पैदा कर सकता है। यह भी एक सुरक्षा समस्या है। यदि किसी स्क्रिप्ट को रूट अनुमतियों की आवश्यकता है, तो पूरी स्क्रिप्ट को रूट के रूप में या sudo . का उपयोग करके चलाया जाना चाहिए ।

जांचें कि क्या स्क्रिप्ट को किसी स्क्रिप्ट में रूट/सुडो के रूप में चलाया जा रहा है

इस कमांड को अपनी स्क्रिप्ट की शुरुआत में जोड़ें ताकि यह जांचा जा सके कि यह रूट/सुडो विशेषाधिकारों के साथ चल रहा है। यह कमांड आपकी स्क्रिप्ट को कुछ भी करने की कोशिश करने से पहले विफल कर देगा, बजाय इसके कि जब आप किसी कमांड को चलाने की कोशिश करें जिसके लिए रूट विशेषाधिकारों की आवश्यकता हो

# Check if running as root
if ((EUID!=0 )); then
    printf "Please run as root"
exit 1
fi

उपयुक्त संकेतों को छोड़ें -y . के साथ

-y जोड़ें अपने उपयुक्त कमांड के अंत तक प्रॉम्प्ट को छोड़ दें और अपनी स्क्रिप्ट को बिना यूजर इनपुट के चलने दें:

sudo apt install nano -y

या

sudo apt upgrade -y

अपने रास्तों को कोट करें!!!

बैश स्क्रिप्ट लिखते समय अपने पथ का उद्धरण दें। यह काफी महत्वपूर्ण है कि हमारे पास एक संपूर्ण लेख है जिसमें बताया गया है कि ऐसा क्यों है।

और वर्तमान कार्यशील निर्देशिका के लिए सही

CURR_DIR="$(dirname $0);"
printf -- 'moving application to /opt/app.jar';
mv "${CURR_DIR}/application.jar" /opt/app.jar;

उपयोगकर्ता इनपुट से चर के लिए डिफ़ॉल्ट मान सेट करें

उपयोगकर्ता इनपुट के लिए संकेत करते समय, निम्न का उपयोग करके डिफ़ॉल्ट मान सेट किए जा सकते हैं:

echo "Enter a value"
read val
val=${val:-"Default Value"}

अगर वेरिएबल वैल पढ़ने के बाद खाली है, डिफ़ॉल्ट मान सेट हो जाएगा।

बहुत सारी टिप्पणियां दें

यह आपके भविष्य के लिए है - स्पष्ट करें कि आप क्या कर रहे हैं और क्यों कर रहे हैं। अपने कोड के इरादे के बारे में स्पष्ट होना एक अच्छी विवेक जांच है और डिबगिंग के साथ सहायता करता है, और व्यापक टिप्पणी करने से बाद की तारीख में आपके कोड पर वापस आना आसान हो जाता है।

प्रिंट, प्रिंट, प्रिंट

कंसोल पर अधिक से अधिक जानकारी प्रिंट करें, ताकि यदि आपकी स्क्रिप्ट क्रैश हो जाए, तो आप जान सकें कहां यह दुर्घटनाग्रस्त हो गया। डिफ़ॉल्ट रूप से बैश स्क्रिप्ट अनिवार्य रूप से वर्बोज़ नहीं होती हैं।

निकास स्थिति छोड़ें

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


  1. लिनक्स में प्रभावी बैश स्क्रिप्ट लिखने के लिए 10 उपयोगी टिप्स

    शेल स्क्रिप्टिंग प्रोग्रामिंग का सबसे आसान रूप है जिसे आप लिनक्स में सीख सकते हैं/कर सकते हैं। इसके अलावा, यह सिस्टम प्रशासन के लिए कार्यों को स्वचालित करने, नई सरल उपयोगिताओं/उपकरणों को विकसित करने के लिए एक आवश्यक कौशल है, लेकिन कुछ का उल्लेख करने के लिए। इस लेख में, हम प्रभावी और विश्वसनीय बैश स

  1. विंडोज 10 [ट्यूटोरियल] पर बैश (लिनक्स शेल) को कैसे स्थापित और उपयोग करें

    यहां बताया गया है कि विंडोज़ पर लिनक्स शेल को कैसे सेट अप करें और उसका उपयोग कैसे करें - लिनक्स के लिए विंडोज सबसिस्टम का उपयोग करके (WSL )। यह ट्यूटोरियल 2020 से विंडोज 10 के अप-टू-डेट वर्जन के लिए है। मैं विंडोज 10 के पुराने संस्करणों या विंडोज 8/7/XP/3.1 के अन्य तरीकों पर WSL का उपयोग करने के त

  1. बैश स्क्रिप्टिंग परिचय ट्यूटोरियल 5 व्यावहारिक उदाहरणों के साथ

    हमारी चल रही यूनिक्स सेड और यूनिक्स Awk श्रृंखला के समान, हम बैश स्क्रिप्टिंग पर कई लेख पोस्ट करेंगे, जो सभी बैश स्क्रिप्टिंग तकनीकों को व्यावहारिक उदाहरणों के साथ कवर करेगा। शेल एक प्रोग्राम है, जो यूजर कमांड की व्याख्या करता है। कमांड या तो उपयोगकर्ता द्वारा सीधे दर्ज किए जाते हैं या शेल स्क्रिप्