બેશનો ઉપયોગ કરીને તમારી પોતાની સ્ક્રિપ્ટો બનાવો

લર્નિંગ લિનક્સ

આપણે જે લિનક્સ ડિસ્ટ્રિબ્યુશનનો ઉપયોગ કરી રહ્યા છીએ તેને ધ્યાનમાં લીધા વિના, કોઈ શંકા નથી કે મારું પ્રિય ઉબુન્ટુ છે જલદી આપણે આ સિસ્ટમનો ઉપયોગ કરીશું, ચોક્કસ ઓટોમેશનની જરૂરિયાતો. તે કહેવાનું છે: આપણા બનાવો પોતાના આદેશો જે વ્યક્તિગત રીતે અમુક આદેશો કરે છે. આ જરૂરિયાત ચોક્કસ કારણોસર હોઈ શકે છે:

  • સિન્ટેક્સને સરળ બનાવો આદેશો જે આપણે સામાન્ય રીતે ચલાવીએ છીએ.
  • ક્રિયાઓ કે જે કોઈપણ આવરી લે છે સિસ્ટમમાં આગાહી ન કરવાની જરૂર છે ઓપરેશનલ
  • સિક્વન્સ ઓર્ડર કે અમે ખાતરીપૂર્વક પુનરાવર્તન.

જો કે કોઈ ડિરેક્ટરીમાં /માંથી બેશ સ્ક્રીપ્ટ ચલાવી શકાય છે, તે સામાન્ય રીતે હોય છે આ સ્ક્રિપ્ટોને હોસ્ટ કરવા માટે ડિરેક્ટરી બનાવો. મારા કિસ્સામાં:

$ mkdir /home/pedro/.bin

હું આ માનું છું ડિરેક્ટરી (નામની આગળના સમયગાળાની અગ્રણી દ્વારા છુપાયેલ) ત્યાંની બધી સ્ક્રિપ્ટોનો ઉપયોગ કરવા માટે. ડિરેક્ટરીનું નામ છુપાયેલ છે તેના સિવાય કોઈ અન્ય અર્થ નથી - સિવાય કે સ્પષ્ટ રીતે સ્પષ્ટ કર્યા સિવાય - જ્યારે ગ્રાફિકલ મોડમાં ફાઇલ વ્યુઅરમાંથી / હોમ / પેડ્રો જોતા હો ત્યારે દેખાશે નહીં.

હવે તમારે કરવું પડશે લિનક્સને જણાવો કે તે ત્યાં પણ જોવું જોઈએ (/home/pedro/.bin) ઓર્ડર કે જે ટર્મિનલમાંથી ચલાવવામાં આવે છે.

$ PATH=$PATH;/home/pedro/.bin

આ રીતે, સિસ્ટમ ત્યાં અમારા ઓર્ડરની શોધ કરશે જ્યાં સુધી આપણે સત્ર બંધ ન કરીએ. આ સંગઠનને કાયમી બનાવવા:

$ sudo nano /etc/environment

અને અમે ઉમેરીએ છીએ

:/home/pedro/.bin

PATH લાઇનના અંતે, આપણે શામેલ છીએ તે ડિરેક્ટરીનું સરનામું પહેલાં કોલોનને ભૂલવું નહીં તે ખૂબ જ મહત્વપૂર્ણ છે, કારણ કે આ એક વધુમાં પદ્ધતિ છે.

અમારી પ્રથમ પગલું દ્વારા સ્ક્રિપ્ટ

અમે અમારા ફાઇલને આ રીતે બનાવીએ છીએ:

$ touch ~/.bin/donde

અને તેને સંપાદિત કરવા માટે, તમે તમારા પસંદીદા સંપાદકનો ઉપયોગ કરી શકો છો અથવા આ સંકેતને અનુસરી શકો છો:

$ gedit ~/.bin/donde &

અને અમે નીચેની સામગ્રી ઉમેરીએ છીએ:

#!/usr/bin/env bash

if [ $# -lt 1 ];
then
    echo "Necesitas pasar un parámetro"
else
    whereis $1
fi

સ્ક્રિપ્ટ વિશ્લેષણ

અમારી પ્રથમ ક callલ લાઇન «શેબેંગ# (#! / Usr / બિન / env bash) Linux ને રિપોર્ટ કરવા પૂછો બેશ શેલ ક્યાં સ્થિત છે અને તે પછી જે છે તે બashશની આવશ્યકતાઓ અનુસાર ચલાવવામાં આવશે. આ સાવચેતી તે સુનિશ્ચિત કરવું અનુકૂળ છે અમારી સ્ક્રિપ્ટો કોઈપણ ઇન્સ્ટોલેશન પર કામ કરે છે. બીજું શક્ય શેબેંગ તે હસી પડ્યો:

#!/bin/bash

તેમની વચ્ચેનો તફાવત ખૂબ જ વિચિત્ર હોઈ શકે છે, અને હું તેને સમજાવીશ. આ છેલ્લામાં હું માનું છું કે અમારી સિસ્ટમમાં / bash / bash સરનામાં પર બેશ શેલ છે. જો કે, જ્યાં હું સ્ક્રિપ્ટમાં પ્રપોઝ કરું છું હું માનું છું કે મને ખબર નથી કે તે ક્યાં છે બેશ દુભાષિયો. હું સિસ્ટમને તેના માટે તે સરનામું આપવા માટે કહીશ.

ત્રીજી લાઇન: જેમ તમે જોઈ શકો છો, બીજી લાઇન એ if છે. અક્ષરોને મારવા માટે «$#« પરિમાણોની સંખ્યા શામેલ છે કે આપણે આદેશ વાક્યમાંથી પસાર થઈ રહ્યા છીએ. તેથી, »જો [$ # -લ્ટ 1]; શાબ્દિક અર્થ "જો પરિમાણોની સંખ્યા 1 કરતા ઓછી હોય તો".

ચોથી લાઇન: પછી (શાબ્દિક રીતે અંગ્રેજીથી ભાષાંતર: પછી), અહીં સૂચવવામાં આવે છે કે આગળ શું આવે છે જ્યારે શરત મૂલ્યાંકન કરવામાં આવશે if સાચા બનો: બીજા શબ્દોમાં કહીએ તો, પરિમાણોની સંખ્યા 1 કરતા ઓછી છે, એટલે કે શૂન્ય.

પાંચમી લાઇન: જો આપણે કોઈ સ્ત્રોત કોઈપણ પરિમાણો વગર ચલાવીએ છીએ, તો અમે ટર્મિનલમાં "તમારે પરિમાણ પસાર કરવાની જરૂર છે" બતાવીએ છીએ.

છઠ્ઠી લાઈન: સૂચવે છે કે જે પછીથી ચલાવવામાં આવશે જ્યારે આપણે જાહેર કરેલી સ્થિતિ સાચી નથી.

સાતમી પંક્તિ: સે આદેશ ચલાવો «ક્યા છે« અમે પસાર કરેલ સામગ્રી સાથે પ્રથમ પરિમાણ.

આઠમી લાઇન: with સાથેfiIc સૂચવે છે કે બ્લોક સમાપ્ત થાય છે if.

અમારી સ્ક્રિપ્ટ ચકાસી રહ્યા છીએ

તે મહત્વનું છે લેખન પરવાનગી ઉમેરો સ્ક્રિપ્ટ પર:

$ chmod -x ~/.bin/donde

આ વિના, "પરવાનગી નકારી" ભૂલ દેખાશે.. તે પછી, આપણે આપણી સ્ક્રીપ્ટ ચલાવી શકીએ છીએ.

$ donde php

તે અમને php બાઈનરીઝ, તેમની સ્રોત ફાઇલો અને મેન પૃષ્ઠોનું સ્થાન બતાવવું જોઈએ. તેના જેવું કંઇક:

php: /usr/bin/php7.0 /usr/bin/php /usr/lib/php /etc/php 
/usr/share/php7.0-readline /usr/share/php7.0-json /usr/share/php7.0-opcache 
/usr/share/php7.0-common /usr/share/php /usr/share/man/man1/php.1.gz

ફરીથી વાપરી રહ્યા છીએ

  • અમે એક સક્ષમ અમારા સ્ક્રિપ્ટો રાખવા માટે ".bin" ડિરેક્ટરી.
  • અમે આપીશું આ ડિરેક્ટરીને તેની આદેશ શોધમાં શામેલ કરવા માટે લિનક્સને માહિતી.
  • અમે અમારી સ્ક્રિપ્ટ બનાવીએ છીએ.
  • વચ્ચે તફાવત ભિન્ન શેબેંગ.
  • નો ઉપયોગ para # સાથે પસાર કરેલ પરિમાણોની સંખ્યા.
  • નો ઉપયોગ પ્રથમ પરિમાણ કોન $1.

હું આશા રાખું છું અને ઈચ્છું છું કે આ સ્ક્રિપ્ટ તમારા માટે ઉપયોગી છે.


તમારી ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. આવશ્યક ક્ષેત્રો સાથે ચિહ્નિત થયેલ છે *

*

*

  1. ડેટા માટે જવાબદાર: મિગ્યુએલ gelંજેલ ગેટóન
  2. ડેટાનો હેતુ: નિયંત્રણ સ્પામ, ટિપ્પણી સંચાલન.
  3. કાયદો: તમારી સંમતિ
  4. ડેટાની વાતચીત: કાયદાકીય જવાબદારી સિવાય ડેટા તૃતીય પક્ષને આપવામાં આવશે નહીં.
  5. ડેટા સ્ટોરેજ: cસેન્ટસ નેટવર્ક્સ (ઇયુ) દ્વારા હોસ્ટ કરેલો ડેટાબેઝ
  6. અધિકાર: કોઈપણ સમયે તમે તમારી માહિતીને મર્યાદિત, પુન recoverપ્રાપ્ત અને કા deleteી શકો છો.

  1.   મીગ્યુએલ જણાવ્યું હતું કે

    ખૂબ જ સારું અને સારી રીતે સમજાવ્યું, પરંતુ પરિમાણ શું સૂચવે છે?

    1.    પેડ્રો રુઇઝ હિડાલ્ગો પ્લેસહોલ્ડર છબી જણાવ્યું હતું કે

      આભાર મિગુએલ!

      હું પરિમાણ દ્વારા બધી પૂરક માહિતીને સમજી શકું છું જે પ્રોગ્રામ, ફંક્શન અથવા સિસ્ટમ માટે પૂરા પાડવામાં આવે છે. જેમ કે આ બોજારૂપ હોઈ શકે છે, ચાલો હું તમને થોડા ઉદાહરણોથી જવાબ આપું.

      B.txt ફાઇલમાં a.txt ફાઇલની નકલ કરવા માટે લિનોક્સ આદેશમાં, આપણે નીચે આપેલ લખીશું:

      p cp a.txt b.txt

      અહીં સી.પી. પ્રોગ્રામ બે પરિમાણો મેળવે છે જે બે ફાઇલોના નામ છે, પ્રથમ (અસ્તિત્વમાં હોવું જ જોઈએ) a.txt અને બીજો બી.ટી.એસ.ટી.ટી.

      બીજું ઉદાહરણ: જો તમે આદેશ સાથે કન્સોલમાંથી છાપવા માટે મોકલો છો

      p એલપી ફાઇલ.પીડીએફ

      આ કિસ્સામાં "file.pdf" એ એલપી પ્રોગ્રામ માટેનું એક પરિમાણ છે.

      હું આશા રાખું છું કે મેં તમારી શંકાઓને સંતોષી લીધી છે.

      સાદર

  2.   મીગ્યુએલ જણાવ્યું હતું કે

    મારી ટિપ્પણીઓ બહાર આવતી નથી, તે આદરનો અભાવ છે, હું ફરીથી આ મંચ પર પાછા ફરતો નથી.

    1.    પેડ્રો રુઇઝ હિડાલ્ગો પ્લેસહોલ્ડર છબી જણાવ્યું હતું કે

      મને ખબર નથી કે શું થયું છે, કોઈ પણ સંજોગોમાં આ પ્રકાશિત થયું છે.

      શુભેચ્છાઓ.