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

मास्टर स्क्रिप्टिंग:दोहराए जाने वाले कार्यों को स्वचालित करके उत्पादकता बढ़ाएँ

मास्टर स्क्रिप्टिंग:दोहराए जाने वाले कार्यों को स्वचालित करके उत्पादकता बढ़ाएँ <पी> जिन डेवलपर्स के पास कठोर, गुणवत्तापूर्ण सॉफ़्टवेयर बनाने का बहुत अनुभव है, वे स्क्रिप्ट लिखकर अपने अधिकांश काम को स्वचालित करते हैं। ये स्क्रिप्ट सरल उपनाम बैश कमांड से लेकर सर्वर पर चलने वाले दोहराए जाने वाले क्रॉन ट्रिगर तक होती हैं।

<पी> इस ट्यूटोरियल में, आप सीखेंगे कि स्क्रिप्टिंग क्या है, इसके कई उपयोग मामले हैं, और स्क्रिप्ट का उपयोग करने के कुछ फायदे और नुकसान हैं। हम कुछ उदाहरण स्क्रिप्ट से भी गुजरेंगे ताकि आप उन्हें क्रियान्वित होते हुए देख सकें।

स्क्रिप्ट क्या है?

<पी> स्क्रिप्ट किसी भी स्क्रिप्टिंग भाषा (जैसे बैश, पायथन, जावास्क्रिप्ट और अन्य) में लिखे गए निर्देशों का एक सेट है जो आपको कार्यों को स्वचालित करने या प्रक्रियाओं को नियंत्रित करने में मदद करता है। संकलित कार्यक्रमों के विपरीत, स्क्रिप्ट की आमतौर पर व्याख्या की जाती है, जिसका अर्थ है कि उन्हें पूर्व संकलन के बिना सीधे रनटाइम वातावरण द्वारा निष्पादित किया जाता है।

<पी> स्क्रिप्ट दोहराए जाने वाले कार्यों को स्वचालित करने, वर्कफ़्लो प्रबंधित करने और छोटी (और कभी-कभी बड़ी) समस्याओं को कुशलतापूर्वक हल करने के लिए शक्तिशाली उपकरण हैं। चाहे आप शुरुआती हों या अनुभवी डेवलपर, स्क्रिप्ट लिखने का तरीका समझने से आपकी उत्पादकता बढ़ सकती है और आपकी तकनीकी क्षमताओं का विस्तार हो सकता है।

स्क्रिप्ट क्यों लिखें?

<पी> मैं पहले ही बता चुका हूँ कि आप स्क्रिप्ट के साथ क्या कर सकते हैं। तो आइए उनके कुछ फायदों (और चुनौतियों पर भी) को देखें ताकि आप समझ सकें कि वे इतने शक्तिशाली क्यों हैं - और उनका उपयोग कब करना है।

स्क्रिप्ट के लाभ

  1. <पी> स्वचालन:स्क्रिप्ट आपको डेटा प्रोसेसिंग या फ़ाइल प्रबंधन जैसे दोहराए जाने वाले कार्यों को सरल बनाने में मदद कर सकती है।

  2. <पी> दक्षता:वे उन कार्यों को स्वचालित करके आपका समय भी बचा सकते हैं जिन्हें आपको अन्यथा मैन्युअल रूप से करना पड़ता।

  3. <पी> त्रुटि में कमी:स्क्रिप्ट निर्देशों के लगातार निष्पादन के माध्यम से मानवीय त्रुटियों को कम करने में मदद कर सकती है।

  4. <पी> लचीलापन:स्क्रिप्ट न्यूनतम संशोधन के साथ विभिन्न प्रकार के कार्यों के लिए अनुकूल हो सकती हैं।

  5. <पी> एकीकरण:वे अन्य प्रणालियों, उपकरणों या वर्कफ़्लो के साथ भी निर्बाध रूप से एकीकृत हो सकते हैं।

स्क्रिप्ट के साथ चुनौतियाँ

  1. <पी> प्रदर्शन:व्याख्या ओवरहेड के कारण स्क्रिप्ट संकलित कार्यक्रमों की तुलना में धीमी हो सकती है।

  2. <पी> स्केलेबिलिटी:वे हमेशा बड़े पैमाने या अत्यधिक जटिल कार्यों के लिए उपयुक्त नहीं होते हैं।

  3. <पी> डिबगिंग:डिबगिंग स्क्रिप्ट कभी-कभी अपनी गतिशील प्रकृति के कारण चुनौतीपूर्ण हो सकती है।

  4. <पी> सुरक्षा जोखिम:खराब लिखी गई स्क्रिप्ट कमजोरियों को उजागर कर सकती हैं, खासकर यदि वे सिस्टम-स्तरीय कमांड निष्पादित करते हैं।

कब उपयोग करें बनाम स्क्रिप्ट का उपयोग न करें

<पी> स्क्रिप्ट इनके लिए आदर्श हैं:

  1. <पी> कार्य सरल, अच्छी तरह से परिभाषित, या एकबारगी

    हैं
  2. <पी> किसी प्रक्रिया को प्रोटोटाइप करना या त्वरित रूप से स्वचालित करना

  3. <पी> जटिलता से बचने के लिए दायरा काफी छोटा है

<पी> स्क्रिप्ट इनके लिए आदर्श नहीं हैं:

  1. <पी> उच्च दक्षता की आवश्यकता वाले प्रदर्शन-महत्वपूर्ण कार्य। स्क्रिप्ट के बजाय, एक समर्पित ईटीएल (एक्सट्रैक्ट, ट्रांसफॉर्म, लोड) टूल या एक मैसेज ब्रोकर, या इसी तरह के वैकल्पिक टूल का उपयोग करने का प्रयास करें जो आपके उपयोग के मामले में फिट हों।

  2. <पी> व्यापक यूजर इंटरफेस वाले एप्लिकेशन। इसके बजाय, आप उचित लॉगिंग, परीक्षण और दस्तावेज़ीकरण के साथ एक छोटा एप्लिकेशन या मॉड्यूलर सिस्टम बना सकते हैं।

  3. <पी> ऐसे परिदृश्यों को दीर्घकालिक रखरखाव की आवश्यकता होती है, जहां संकलित कार्यक्रम अधिक स्थिर हो सकते हैं। इसके बजाय, कार्य शेड्यूलर या CRON, एयरफ्लो, AWS लैम्ब्डा/GCP फ़ंक्शंस जैसे वर्कफ़्लो प्रबंधकों का उपयोग करें।

प्रभावी स्क्रिप्ट कैसे लिखें

<पी> यह वह प्रक्रिया है जिसका उपयोग मैं उपयोगी स्क्रिप्ट लिखने के लिए करता हूँ। इसे पढ़ने के बाद, हम विभिन्न भाषाओं में लिपियों के कुछ उदाहरण देखेंगे ताकि आप कुछ व्यावहारिक अभ्यास प्राप्त कर सकें।

  1. <पी> समस्या को परिभाषित करें:स्क्रिप्ट लिखने से पहले, उस समस्या की पहचान करें जो वह हल करेगी। स्वचालित किए जाने वाले कार्यों और अपेक्षित परिणामों के बारे में स्पष्ट रहें।

  2. <पी> सही भाषा चुनें:

    • <पी> बैश: फ़ाइल संचालन या सर्वर प्रबंधन जैसे सिस्टम-स्तरीय कार्यों के लिए आदर्श।

    • <पी> पायथन: डेटा प्रोसेसिंग, वेब स्क्रैपिंग और अधिक जटिल स्वचालन के लिए बढ़िया।

    • <पी> जावास्क्रिप्ट: वेब विकास और ब्राउज़र-आधारित स्वचालन के लिए उपयुक्त।

  3. <पी> स्क्रिप्ट लिखें:एक टेक्स्ट एडिटर या इंटीग्रेटेड डेवलपमेंट एनवायरनमेंट (आईडीई) का उपयोग करें, और सुनिश्चित करें कि आप टिप्पणियों, सार्थक चर नामों और मॉड्यूलर कोड का उपयोग करने जैसी सर्वोत्तम प्रथाओं का पालन करते हैं। हम इन्हें नीचे कवर करेंगे।

  4. <पी> स्क्रिप्ट का परीक्षण करें:यह सुनिश्चित करने के लिए नियंत्रित वातावरण में स्क्रिप्ट का परीक्षण करें कि यह त्रुटियों के बिना अपेक्षित प्रदर्शन करता है।

  5. <पी> निष्पादित और तैनात करें:स्क्रिप्ट को उसके इच्छित वातावरण में चलाएँ। यदि आवश्यक हो, तो क्रॉन (बैश के लिए) या कार्य शेड्यूलर जैसे टूल का उपयोग करके इसके निष्पादन को शेड्यूल करें।

उदाहरण स्क्रिप्ट

<पी> अब जब आप बुनियादी बातें जान गए हैं, तो आइए कुछ अभ्यास करें। मान लें कि आपके पास "book-part-1.pdf", "book-part-2.pdf", ..., "book-part-100.pdf" नाम वाली लगभग 100 फ़ाइलें हैं। आप फ़ाइल नामों में सभी हाइफ़न (-) को अंडरस्कोर (_) से बदलना चाहते हैं, क्योंकि जिस वेबसाइट पर आप इन दस्तावेज़ों को अपलोड करने का प्रयास कर रहे हैं वह आपको हाइफ़न वाले नामों वाली फ़ाइलें अपलोड करने की अनुमति नहीं देता है।

<पी> यहां तीन अलग-अलग भाषाओं में लिखी गई स्क्रिप्ट हैं जो सभी एक ही ऑपरेशन करती हैं। प्रक्रिया इस प्रकार दिखती है:

  1. <पी> एक निर्देशिका में सभी फ़ाइलें ढूंढें,

  2. <पी> जांचें कि क्या उनके नाम में हाइफ़न (-) है, और

  3. <पी> किसी भी हाइफ़न को अंडरस्कोर (_) से बदलें।

<पी> प्रारंभ करने के लिए फ़ाइल नाम यहां दिए गए हैं (हाइफ़न सहित):

<पी> मास्टर स्क्रिप्टिंग:दोहराए जाने वाले कार्यों को स्वचालित करके उत्पादकता बढ़ाएँ

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

<पी> हम एक बैश स्क्रिप्ट से शुरुआत करेंगे। यह यहाँ है:

#!/bin/bash
# Replace "-" with "_" in file names
DIRECTORY="/path/to/your/folder"
for FILE in "$DIRECTORY"/*; do
 if [[ "$FILE" == *-* ]]; then
 NEW_NAME=$(echo "$FILE" | sed 's/-/_/g')
 mv "$FILE" "$NEW_NAME"
 echo "Renamed: $FILE -> $NEW_NAME"
 fi
done
<पी> हम शीर्ष पर उस निर्देशिका (फ़ोल्डर) को परिभाषित करते हैं जहां हमारी फ़ाइलें रहती हैं। निर्देशिका में प्रत्येक फ़ाइल के लिए, हम जाँचते हैं कि नाम में - है या नहीं . ऐसे मामले में, हम एक नया फ़ाइल नाम बनाते हैं और इसे वेरिएबल NEW_NAME में संग्रहीत करते हैं echo का उपयोग करके पुराने फ़ाइल नाम की प्रतिलिपि बनाकर - को कमांड करें और बदलें _ के साथ sed का उपयोग करना आदेश. अंत में हम मूव कमांड mv का उपयोग करते हैं तर्क के रूप में पुराने और नए फ़ाइल नामों के साथ।

पायथन स्क्रिप्ट

<पी> आगे, आइए देखें कि यह पायथन में कैसा दिखेगा:

import os
# Replace "-" with "_" in file names
directory = "/path/to/your/folder"
for filename in os.listdir(directory):
 if "-" in filename:
 old_path = os.path.join(directory, filename)
 new_filename = filename.replace("-", "_")
 new_path = os.path.join(directory, new_filename)
 os.rename(old_path, new_path)
 print(f"Renamed: {filename} -> {new_filename}")
<पी> पाइथॉन में चरण काफी हद तक समान हैं। सबसे पहले, हम निर्देशिका को परिभाषित करते हैं और फिर निर्देशिका में प्रत्येक फ़ाइल के माध्यम से पुनरावृति करते हैं। निर्देशिका में सभी फ़ाइलों को खोजने के लिए, हमें listdir का उपयोग करना होगा os से विधि पैकेज.

<पी> फिर हम जाँचते हैं कि फ़ाइल नाम में - है या नहीं अगली पंक्ति में. ऐसे मामले में, हम वर्तमान पथ (old_path) ढूंढते हैं ) निर्देशिका और उसके फ़ाइल नाम को मर्ज करके फ़ाइल का। हम - को प्रतिस्थापित करके नया फ़ाइल नाम बना सकते हैं _ के साथ replace का उपयोग करना विधि.

<पी> फिर हम नया फ़ाइल पथ (new_path) उत्पन्न करते हैं ) इसी तरह हम old_path जनरेट करते हैं . अंत में, हम rename पर कॉल करते हैं os में विधि तर्क के रूप में पुराने और नए फ़ाइल पथों वाला पैकेज।

जावास्क्रिप्ट स्क्रिप्ट

<पी> और अब देखते हैं कि यह जावास्क्रिप्ट में कैसा दिखेगा:

const fs = require('fs');
const path = require('path');
const directory = '/path/to/your/folder';
fs.readdir(directory, (err, files) => {
 if (err) {
 console.error('Error reading directory:', err);
 return;
 }
 files.forEach(file => {
 if (file.includes('-')) {
 const oldPath = path.join(directory, file);
 const newFilename = file.replace(/-/g, '_');
 const newPath = path.join(directory, newFilename);
 fs.rename(oldPath, newPath, err => {
 if (err) {
 console.error(`Error renaming ${file}:`, err);
 } else {
 console.log(`Renamed: ${file} -> ${newFilename}`);
 }
 });
 }
 });
});
<पी> जावास्क्रिप्ट कार्यान्वयन कुछ हद तक पायथन कार्यान्वयन के समान है - लेकिन आपको अधिक कोड लिखने की आवश्यकता होगी। आम तौर पर, डेवलपर इस प्रकार की स्क्रिप्ट के लिए जावास्क्रिप्ट को प्राथमिकता नहीं देते हैं। उनमें से अधिकांश बैश/पायथन पर निर्भर हैं। जावास्क्रिप्ट ब्राउज़र-आधारित स्वचालन स्क्रिप्ट के लिए बेहतर अनुकूल है।

<पी> फिर भी, आइए देखें कि हमारे पास यहां क्या है। इस जावास्क्रिप्ट कोड में आपको दो अलग-अलग पैकेज, fs का उपयोग करना होगा और path . हम शीर्ष पर निर्देशिका को परिभाषित करते हैं, readdir का उपयोग करके निर्देशिका में फ़ाइलों को पढ़ते हैं fs से विधि पैकेज, और निर्देशिका को तर्क के रूप में पास करें। निर्देशिका के साथ, हम एक कॉलबैक फ़ंक्शन भी पास करते हैं जिसे फ़ाइलों को पढ़ने के बाद निष्पादित किया जाएगा।

<पी> कॉलबैक फ़ंक्शन के अंदर, हम प्रत्येक फ़ाइल के माध्यम से लूप करते हैं और जांचते हैं कि फ़ाइल नाम में एक हाइफ़न (-) शामिल है या नहीं ). यदि ऐसा होता है, तो हम path का उपयोग करके पुराना पथ ढूंढते हैं तर्क के रूप में निर्देशिका और फ़ाइल नामों के साथ पैकेज। फिर हम replace का उपयोग करके सभी हाइफ़न को अंडरस्कोर से बदलकर नया फ़ाइल नाम बनाते हैं विधि.

<पी> पुराने पथ के समान, हम तर्क के रूप में नए फ़ाइल नाम का उपयोग करके नया पथ ढूंढते हैं। फिर हम rename का उपयोग करते हैं fs से विधि पुराने और नए दोनों फ़ाइल नामों को पास करके फ़ाइल का नाम बदलने के लिए पैकेज। यदि किसी निर्देशिका में फ़ाइलों का नाम बदलने या पढ़ने के दौरान त्रुटियां होती हैं, तो हम त्रुटि संदेश लॉग करते हैं। अन्यथा, हम सफलता संदेश लॉग करते हैं।

इन स्क्रिप्ट्स को कैसे चलाएं

<पी> ठीक है, यहां बताया गया है कि आप वास्तव में इन स्क्रिप्ट्स का उपयोग कैसे कर सकते हैं:

  1. <पी> /path/to/your/folder बदलें फ़ाइलों वाली वास्तविक निर्देशिका के साथ।

  2. <पी> स्क्रिप्ट को संबंधित वातावरण में चलाएँ:

    • <पी> बैश: .sh के रूप में सहेजें फ़ाइल, फिर bash script.sh के साथ निष्पादित करें
    • <पी> पायथन: .py के रूप में सहेजें फ़ाइल, फिर python script.py के साथ निष्पादित करें
    • <पी> जावास्क्रिप्ट: .js के रूप में सहेजें फ़ाइल, फिर node script.js के साथ निष्पादित करें
<पी> नीचे दिया गया स्क्रीनशॉट फाइलों के नाम बदलने के लिए बैश स्क्रिप्ट को चलाता हुआ दिखाता है।

<पी> मास्टर स्क्रिप्टिंग:दोहराए जाने वाले कार्यों को स्वचालित करके उत्पादकता बढ़ाएँ

<पी> मास्टर स्क्रिप्टिंग:दोहराए जाने वाले कार्यों को स्वचालित करके उत्पादकता बढ़ाएँ

आवर्ती स्क्रिप्ट

<पी> आवर्ती स्क्रिप्ट को नियमित अंतराल पर निष्पादित करने के लिए डिज़ाइन किया गया है, जैसे सिस्टम की स्थिति की साप्ताहिक जाँच करना, लॉग साफ़ करना, या डेटा अपडेट प्राप्त करना। ये स्क्रिप्ट आम तौर पर किसी प्रकार के कार्य अनुसूचक का उपयोग करती हैं।

सामान्य दृष्टिकोण

  1. <पी> सीआरओएन नौकरियां:अधिकांश ऑपरेटिंग सिस्टम सीआरओएन का समर्थन करते हैं, जो एक निर्धारित शेड्यूल के आधार पर स्क्रिप्ट को ट्रिगर कर सकते हैं।
  2. <पी> कार्य कतारें:सेलेरी (पायथन), बुल (नोड.जेएस), या साइडकीक (रूबी) जैसे उपकरण अधिक लचीलेपन के साथ निर्धारित कार्यों को संभाल सकते हैं।

  3. <पी> क्लाउड शेड्यूलर:इवेंटब्रिज, Google क्लाउड शेड्यूलर, या एज़्योर लॉजिक ऐप्स के साथ AWS लैम्ब्डा जैसी सेवाएँ आपको सर्वर रहित आर्किटेक्चर में आवर्ती स्क्रिप्ट सेट करने की अनुमति देती हैं।

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

स्क्रिप्ट लिखने के सर्वोत्तम अभ्यास

<पी> जब आप स्क्रिप्ट लिख रहे हों तो ध्यान रखने योग्य कुछ बातें यहां दी गई हैं:

<पी> 1. टिप्पणियों का उपयोग करें :स्क्रिप्ट के जटिल हिस्सों को टिप्पणियों के साथ समझाएं।

<पी> नीचे दिए गए उदाहरण में, टिप्पणी के बिना, किसी को यह पता लगाने में अतिरिक्त समय खर्च करना पड़ सकता है कि कर की दर दशमलव क्यों है और प्रतिशत क्यों नहीं।

# Calculate the total price with tax
def calculate_price_with_tax(price, tax_rate):
 # Tax rate is expressed as a decimal (e.g., 0.07 for 7%)
 return price + (price * tax_rate)
<पी> 2. त्रुटि प्रबंधन :संभावित त्रुटियों का ध्यान रखें और उन्हें शालीनता से संभालें।

<पी> नीचे दिए गए उदाहरण में, यदि फ़ाइल गुम है, तो स्क्रिप्ट क्रैश नहीं होगी - इसके बजाय, यह एक उपयोगी त्रुटि संदेश दिखाएगी।

try:
 with open('data.csv', 'r') as file:
 data = file.readlines()
except FileNotFoundError:
 print("Error: 'data.csv' file not found. Make sure the file exists before running the script.")
except Exception as e:
 print(f"An unexpected error occurred: {e}")
<पी> 3. मॉड्यूलर डिज़ाइन :स्क्रिप्ट को पुन:प्रयोज्य फ़ंक्शंस या मॉड्यूल में तोड़ें।

<पी> नीचे दिए गए उदाहरण में, कार्यक्षमता को छोटे, पुन:प्रयोज्य कार्यों में अलग करके, आप स्क्रिप्ट के कुछ हिस्सों को स्वतंत्र रूप से डीबग या पुन:उपयोग कर सकते हैं।

def fetch_data_from_api(api_url):
 # Fetch data from the given API
 pass
def process_data(data):
 # Process the data into the desired format
 pass
def save_to_file(data, filename):
 # Save processed data to a file
 pass
# Main script
if __name__ == "__main__":
 data = fetch_data_from_api("https://example.com/api")
 processed_data = process_data(data)
 save_to_file(processed_data, "output.json")
<पी> 4. इनपुट सत्यापन :अप्रत्याशित त्रुटियों या सुरक्षा जोखिमों को रोकने के लिए उपयोगकर्ता इनपुट को मान्य करें।

<पी> सत्यापन के बिना, कोई व्यक्ति अमान्य या दुर्भावनापूर्ण डेटा इनपुट कर सकता है (उदाहरण के लिए, कुछ परिदृश्यों में SQL इंजेक्शन स्ट्रिंग)।

import re
# Validate that the input is a valid email address
def validate_email(email):
 pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
 if not re.match(pattern, email):
 raise ValueError("Invalid email address format")
 return email
# Example usage
try:
 user_email = validate_email(input("Enter your email: "))
 print(f"Valid email: {user_email}")
except ValueError as e:
 print(e)
<पी> 5. संस्करण नियंत्रण :परिवर्तनों को ट्रैक करने के लिए Git या अन्य संस्करण नियंत्रण टूल का उपयोग करें।

<पी> यदि कोई परिवर्तन स्क्रिप्ट को तोड़ता है, तो आप git checkout का उपयोग करके आसानी से पिछली प्रतिबद्धता पर वापस लौट सकते हैं . साथ ही, आप टीम के सदस्यों के साथ निर्बाध रूप से सहयोग कर सकते हैं।

git init
git add script.py
git commit -m "Initial commit"

निष्कर्ष

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

<पी> मेरे पास आपके लिए एक व्यायाम है. इस उदाहरण स्क्रिप्ट को चलाने और सत्यापित करने के लिए, आप सोच सकते हैं कि आपको मैन्युअल रूप से 100 फ़ाइलें बनानी होंगी। इसमें बहुत समय लगता है।

<पी> मैंने उन 100 फ़ाइलों को उत्पन्न करने के लिए एक स्क्रिप्ट लिखी। मैं यह भी अनुशंसा करूंगा कि आप फ़ाइल नामों में हाइफ़न के साथ 100 फ़ाइलें उत्पन्न करने के लिए एक स्क्रिप्ट लिखने का प्रयास करें। फिर हाइफ़न को अंडरस्कोर में बदलने के लिए उदाहरण स्क्रिप्ट चलाने का प्रयास करें।

<पी> शुरुआत में यह मुश्किल लग सकता है, लेकिन यकीन मानिए आपको 100 फाइलें जेनरेट करने के लिए बस बैश कोड की 5 लाइनें लिखनी होंगी। केवल 100 ही नहीं - आप कोड की केवल 5 पंक्तियों के साथ एक मिलियन/बिलियन/ट्रिलियन फ़ाइलें भी उत्पन्न कर सकते हैं।

<पी> यदि आप स्क्रिप्ट के बारे में अधिक जानना चाहते हैं, तो मेरे ईमेल न्यूज़लेटर (https://5minslearn.gogosoon.com/) की सदस्यता लें और सोशल मीडिया पर मुझे फ़ॉलो करें।

<पी> हैप्पी स्क्रिप्टिंग!

<पी> मुफ़्त में कोड करना सीखें. फ्रीकोडकैंप के ओपन सोर्स पाठ्यक्रम ने 40,000 से अधिक लोगों को डेवलपर्स के रूप में नौकरी पाने में मदद की है। आरंभ करें


  1. टिंकर टेक्स्ट विजेट में सुविधाओं को पूर्ववत करें और फिर से करें टिंकर टेक्स्ट विजेट में सुविधाओं को पूर्ववत करें और फिर से करें

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

  1. टिंकर में फ्रेम का स्पष्ट रूप से आकार कैसे बदलें? टिंकर में फ्रेम का स्पष्ट रूप से आकार कैसे बदलें?

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

  1. एचटीएमएल डोम स्टाइल बॉर्डरबॉटमविड्थ प्रॉपर्टी एचटीएमएल डोम स्टाइल बॉर्डरबॉटमविड्थ प्रॉपर्टी

    BorderBottomWidth प्रॉपर्टी का इस्तेमाल किसी एलिमेंट के लिए बॉटम बॉर्डर की चौड़ाई सेट करने या पाने के लिए किया जाता है। सिंटैक्स − . के लिए वाक्य रचना निम्नलिखित है बॉर्डरबॉटमविड्थ प्रॉपर्टी सेट करना - object.style.borderBottomWidth = "thin|medium|thick|length|initial|inherit" मान संपत्