Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Bash प्रोग्रामिंग

LinuxScrew का विशेषज्ञ गाइड: शेल और बैश स्क्रिप्टिंग के लिए उपयोगी टिप्स

परिचय

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

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

ये टिप्स इंटरनेट से एकत्रित किए गए हैं, साथ ही कुछ मेरे अपने भी हैं।

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

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

set -eu 

-e स्क्रिप्ट को त्रुटि होने पर बाहर निकलने के लिए कहता है, और -u स्क्रिप्ट को तब बाहर निकलने के लिए कहता है जब कोई वेरिएबल सेट न हो।

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

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

#!/bin/sh 

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

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

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

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

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

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

-y के साथ apt प्रॉम्प्ट्स को छोड़ें

उपयोगकर्ता इनपुट के बिना अपने स्क्रिप्ट को चलाने की अनुमति देने के लिए प्रॉम्प्ट को छोड़ने और अपने apt कमांड के अंत में -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"} 

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

बहुत सारी टिप्पणियाँ छोड़ें

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

प्रिंट करें, प्रिंट करें, प्रिंट करें

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

एक निकास स्थिति उत्सर्जित करें

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


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

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

  1. WSL के साथ Windows 10 पर Bash इंस्टॉल और उपयोग करें - चरण-दर-चरण ट्यूटोरियल WSL के साथ Windows 10 पर Bash इंस्टॉल और उपयोग करें - चरण-दर-चरण ट्यूटोरियल

    यहां बताया गया है कि Windows पर Linux शेल को कैसे सेट अप और उपयोग करें – Windows Subsystem for Linux (WSL) का उपयोग करके। यह ट्यूटोरियल 2020 के बाद से Windows 10 के अप-टू-डेट संस्करणों के लिए अभिप्रेत है। मैं Windows 10 के पुराने संस्करणों या Windows 8/7/XP/3.1 के लिए अन्य विधियों पर WSL का उपयोग कै

  1. Bash स्क्रिप्टिंग में मास्टर करें: 5 वास्तविक-विश्व उदाहरणों के साथ एक व्यावहारिक परिचय Bash स्क्रिप्टिंग में मास्टर करें: 5 वास्तविक-विश्व उदाहरणों के साथ एक व्यावहारिक परिचय

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