ಬ್ಯಾಷ್‌ನಲ್ಲಿ ಕಾರ್ಯಗಳನ್ನು ಹೇಗೆ ಬಳಸುವುದು

ಈ ಯುನಿಕ್ಸ್ ಶೆಲ್-ಆಧಾರಿತ, ಪೋಸಿಕ್ಸ್-ಕಂಪ್ಲೈಂಟ್ ಕಂಪ್ಯೂಟರ್ ಭಾಷೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಬ್ಯಾಷ್‌ನಲ್ಲಿ ಕಾರ್ಯಗಳನ್ನು ಹೇಗೆ ಬಳಸುವುದು. ಭಾಷೆಯಾಗಿ, ಅದರ ಕಾರ್ಯವು ಲಿನಕ್ಸ್ ಆಜ್ಞೆಗಳ ವ್ಯಾಖ್ಯಾನವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಇದು ನಮ್ಮ ಪುನರಾವರ್ತಿತ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಲು ಮತ್ತು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಆಜ್ಞೆಗಳಿಂದ ಆಜ್ಞೆಗಳನ್ನು ರಚಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಈ ಲೇಖನದಲ್ಲಿ ನಾವು ಪರಿಶೀಲಿಸುತ್ತೇವೆ ಬ್ಯಾಷ್ನಲ್ಲಿ ಕಾರ್ಯಗಳನ್ನು ಹೇಗೆ ಬಳಸುವುದು. ಹೇಗೆ ಎಂದು ಲೇಖನವನ್ನು ಓದಲು ನಾನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ ಬ್ಯಾಷ್ ಬಳಸಿ ನಿಮ್ಮ ಸ್ವಂತ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ರಚಿಸಿ.

ನಾವು ಪ್ರಸ್ತಾಪಿಸುವ ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ನಾವು ಅದರ ಹೆಸರನ್ನು ತಿಳಿದುಕೊಂಡು ಫೈಲ್ ಅನ್ನು ಹುಡುಕಲು ಬ್ಯಾಷ್ ಭಾಷೆಯನ್ನು ಬಳಸುತ್ತೇವೆ. ಇದಕ್ಕಾಗಿ ನಾವು ಬಳಸುತ್ತೇವೆ ಆಜ್ಞೆಯನ್ನು ಹುಡುಕಿ ಆದರೆ ಈ ಹಿಂದೆ ಹೇಳಿದ ಲಿಪಿಯಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಕಾರ್ಯಗಳ ಸಹಾಯದಿಂದ. ಎಲ್ಲಾ ಭಾಷೆಗಳಲ್ಲಿ ಇಲ್ಲದ ಬ್ಯಾಷ್‌ನ ವಿಶಿಷ್ಟತೆ ಅಥವಾ ಮಿತಿಯನ್ನು ನೀವು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಬೇಕು: ಕಾರ್ಯವನ್ನು ಕರೆಯಲು ಅದನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಬೇಕು ಹಿಂದೆ.

ಪಾತ್ರಗಳನ್ನು ವಿವರಿಸಿ

ಕಾರ್ಯಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಎರಡು ಮಾರ್ಗಗಳಿವೆ: ಕಾರ್ಯ ಘೋಷಣೆಯೊಂದಿಗೆ ಅಥವಾ ಇಲ್ಲದೆ:

function nombre_funcion () 
{
    # codigo
}

ಅಥವಾ ಇದು ಇನ್ನೊಂದನ್ನು, ನಂತರ ನೀವು ನೋಡುವಂತೆ ನಾನು ಬಳಸುತ್ತಿದ್ದೇನೆ.

nombre_funcion ()
{
    # codigo
}

ಸಹ ನಿಯತಾಂಕಗಳನ್ನು ರವಾನಿಸಲು ಮತ್ತು ಫಲಿತಾಂಶಗಳನ್ನು ಹಿಂತಿರುಗಿಸಲು ಬ್ಯಾಷ್ ಸಹ ಒಂದು ವಿಧಾನವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಮುಂದಿನ ಲೇಖನಗಳಲ್ಲಿ ನಾವು ನೋಡುತ್ತೇವೆ.

#!/usr/bin/env bash

# ~/.bin/encontrar
# encuentra archivos a partir de la descripción de su nombre en un directorio específico
#
# Por Pedro Ruiz Hidalgo
# version 1.0.0
# Copyright © enero 2017
#
#

EXIT_OK=0
EXIT_BAD=66

PATRON=$1
DIRECTORIO=$2

autor ()
{
 echo -e "\nPedro Ruiz Hidalgo @petrorum. Copyright © 2017\n"
}

ayuda ()
{
 echo -e "\nencontrar [PATRON] [DIRECTORIO]\n"
} 

noparams ()
{
 echo -e "\nSon necesarios dos parámetros\nencontrar -h para ayuda\n"
 read -p "¿Quieres ver la ayuda? (S|s)" -n 1 -r
 if [[ $REPLY =~ ^[Ss]$ ]];
    then
       echo ""
       ayuda
 fi
}

nodir ()
{
 echo -e "\nDirectorio no Existe\n"
}

if [[ $PATRON == "-h" ]];
then 
 ayuda
 exit $EXIT_OK
fi

if [[ $PATRON == "-a" ]];
then 
 autor
 exit $EXIT_OK
fi

if [ $# -lt 2 ];
then
 noparams
else
 if [ -d $DIRECTORIO ];
 then
 echo ""
 find $DIRECTORIO -name $PATRON*
 echo ""
 exit $?
 else 
 nodir 
 exit EXIT_BAD
 fi
fi


ಸ್ಕ್ರಿಪ್ಟ್ ವಿಶ್ಲೇಷಣೆ

ವ್ಯಾಖ್ಯಾನಗಳು

ಬ್ಯಾಷ್ಗಾಗಿ ಯಶಸ್ವಿಯಾಗಿ ಪೂರ್ಣಗೊಂಡ ಪ್ರತಿಯೊಂದು ಪ್ರಕ್ರಿಯೆಯು "0" ಸಂಕೇತವನ್ನು ಸಂಕೇತವಾಗಿ ಹೊಂದಿರಬೇಕು. 12 ಮತ್ತು 13 ಸಾಲುಗಳು ನಿರ್ವಹಿಸಿದ ದೋಷ ಸಂಕೇತಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತವೆ ಯಶಸ್ಸಿಗೆ EXIT_OK y ವೈಫಲ್ಯದಿಂದ ನಿರ್ಗಮಿಸಲು EXIT_BAD.

15 ಮತ್ತು 16 ನೇ ಸಾಲುಗಳಲ್ಲಿ, ಪ್ಯಾಟರ್ನ್ ಮತ್ತು ಡೈರೆಕ್ಟರಿ ಅಸ್ಥಿರಗಳಿಗೆ ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಹೆಸರಿನ ನಂತರ ಆಜ್ಞಾ ಸಾಲಿನಲ್ಲಿ ಗೋಚರಿಸುವ ಮೊದಲ ($ 1) ಮತ್ತು ಎರಡನೆಯ ($ 2) ನಿಯತಾಂಕಗಳನ್ನು ನಿಗದಿಪಡಿಸಲಾಗಿದೆ, ಏಕೆಂದರೆ ನಾವು ಅದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದಾಗ ನಂತರ ನೋಡುತ್ತೇವೆ.

ರಲ್ಲಿ ಸಾಲು 18 ನಾವು ನಮ್ಮ ಮೊದಲ ಕಾರ್ಯವನ್ನು ರಚಿಸುತ್ತೇವೆ. «ಲೇಖಕ called ಎಂಬ ಕಾರ್ಯವು ಪ್ರದರ್ಶಿಸುತ್ತದೆ ಸ್ಕ್ರಿಪ್ಟ್ ಕರ್ತೃತ್ವ 50 ~ 54 ಸಾಲುಗಳಲ್ಲಿ ನೀವು ನೋಡುವಂತೆ ನಾವು ಅದನ್ನು "-a" ವಾದದೊಂದಿಗೆ ಕರೆಯುವಾಗ. ವಾದ "-ಮತ್ತು" 23 ನೇ ಸಾಲಿನಿಂದ «\ n enc ಎನ್ಕೋಡಿಂಗ್ ಮಾಡುವ ಮೂಲಕ« ಮುಂದಿನ ಸಾಲು of ನ ಅನುಕ್ರಮವನ್ನು ತೋರಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.

ಯಾವುದೇ ನಿಯತಾಂಕಗಳಿಲ್ಲದೆ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಕರೆಯುವಾಗ ಸಂಭವಿಸಬೇಕಾದ ಘಟನೆಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಜವಾಬ್ದಾರಿಯನ್ನು ನೋಪರಾಮ್‌ಗಳ ಕರೆ (28 ~ 37 ಸಾಲುಗಳು) ಹೊಂದಿದೆ. ಹೊಸ ಸಾಲಿನ ಸಂಕೇತಗಳ ನಡುವೆ ಸರಿಯಾಗಿ ಸುತ್ತುವರೆದಿರುವ ನಾವು ತೋರಿಸುತ್ತೇವೆ, ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಎರಡು ನಿಯತಾಂಕಗಳೊಂದಿಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕು ಎಂದು ಸೂಚಿಸುವ ಸಂದೇಶ, ನಂತರ ಒಂದು ಆಯ್ಕೆಯನ್ನು (ಸಾಲು 31) ಬಳಸಲು ತೋರಿಸಲಾಗಿದೆ ಓದಲು ನೀವು ಸಹಾಯವನ್ನು ತೋರಿಸಲು ಬಯಸಿದರೆ "ಎಸ್" ಅಥವಾ "ರು" ಒತ್ತಿ ಎಂದು ಅದು ನಿಮ್ಮನ್ನು ಕೇಳುತ್ತದೆ. 32 ನೇ ಸಾಲಿನಲ್ಲಿ ನಾವು ಅಕ್ಷರಶಃ ಹೇಳುತ್ತೇವೆ: 'ಉತ್ತರ (ವೇರಿಯೇಬಲ್ನಲ್ಲಿ ನಮಗೆ ಬಂದರೆ $ ಪ್ರತ್ಯುತ್ತರ) ದೊಡ್ಡಕ್ಷರ ಅಥವಾ ಸಣ್ಣಕ್ಷರಗಳ ಯಾವುದೇ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ, ನಂತರ (33 ನೇ ಸಾಲು) ಖಾಲಿ ರೇಖೆಯನ್ನು ತೋರಿಸುತ್ತದೆ (34 ನೇ ಸಾಲು) ಮತ್ತು ಸಹಾಯ ಕಾರ್ಯವನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ (ಸಾಲುಗಳು 23 ~ 26).

ಹುಡುಕಾಟವನ್ನು ಪ್ರಯತ್ನಿಸುವ ಡೈರೆಕ್ಟರಿ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ ಎಂದು ನಾವು ಕಂಡುಕೊಂಡಾಗ ನೋಡಿರ್ ಕಾರ್ಯ (ಸಾಲುಗಳು 39 ~ 42) ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತದೆ.

ಕಾರ್ಯವನ್ನು

ಇದರೊಂದಿಗೆ ನಾವು ಈಗಾಗಲೇ ಹೊಂದಿದ್ದೇವೆ ಎಲ್ಲಾ ಅಗತ್ಯ ಕಾರ್ಯಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ ನಮ್ಮ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು, ಅದು ವಾಸ್ತವವಾಗಿ 44 ನೇ ಸಾಲಿನಲ್ಲಿ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ, ಸ್ಕ್ರಿಪ್ಟ್ ಸ್ವೀಕರಿಸುವ ನಿಯತಾಂಕಗಳಲ್ಲಿ ಮೊದಲನೆಯದು "-h" ಎಂದು ಪರಿಶೀಲಿಸುತ್ತದೆ, ಅದು ನಿಜವಾಗಿದ್ದರೆ, ಸಹಾಯ ಕಾರ್ಯವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ ಮತ್ತು ಸಾಮಾನ್ಯ ಮುಕ್ತಾಯವನ್ನು ಸೂಚಿಸುವ ನಿರ್ಗಮನ.

PATTERN (ನಾವು 15 ನೇ ಸಾಲಿನಲ್ಲಿ ವಿವರಿಸಿದಂತೆ ಮೊದಲ ನಿಯತಾಂಕ) "-a" ಆಗಿದ್ದರೆ, "-h" ಆಯ್ಕೆಗಾಗಿ ಹಿಂದಿನ ಪ್ಯಾರಾಗ್ರಾಫ್‌ನಲ್ಲಿ ವಿವರಿಸಿದ ಅದೇ ಕಾರ್ಯವಿಧಾನವನ್ನು ಅನುಸರಿಸಿ ಲೇಖಕರನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ.

ಸಾಲಿನಲ್ಲಿ 56 ನಾವು ಎರಡು ನಿಯತಾಂಕಗಳಿಗಿಂತ ಕಡಿಮೆ ಸ್ವೀಕರಿಸಿಲ್ಲ ಎಂದು ನಿಯಂತ್ರಿಸಲಾಗುತ್ತದೆ, ಈ ಸಂದರ್ಭದಲ್ಲಿ, ನೋಪರಾಮ್‌ಗಳ ಕಾರ್ಯವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ, ನಂತರ 60 ನೇ ಸಾಲಿನ ವೇಳೆ ನಾವು ಕಂಡುಕೊಳ್ಳುತ್ತೇವೆ ನಾವು ಹುಡುಕಾಟವನ್ನು ಮಾಡಲು ಬಯಸುವ ಡೈರೆಕ್ಟರಿ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ, ಅದು ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ, ಖಾಲಿ ರೇಖೆಯನ್ನು ತೋರಿಸಲಾಗುತ್ತದೆ, ದಿ ಆಜ್ಞೆಯನ್ನು ಹುಡುಕಿ ನಾವು ಹುಡುಕಾಟವನ್ನು ಕೈಗೊಳ್ಳಲು ಬಯಸುವ ಡೈರೆಕ್ಟರಿಯ ವಿಳಾಸದೊಂದಿಗೆ (ನಾವು ಹುಡುಕುತ್ತಿರುವ ಫೈಲ್‌ನ ಹೆಸರಿನ ಪ್ರಾರಂಭ) ಹೊಸ ಖಾಲಿ ಸಾಲು ಮತ್ತು ಬಳಸುವುದು ನಿರ್ಗಮಿಸಿ $? ಹುಡುಕುವಿಕೆಯಿಂದ ಉತ್ಪತ್ತಿಯಾಗುವ ಫಲಿತಾಂಶಕ್ಕೆ ನಾವು ನಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್‌ನ output ಟ್‌ಪುಟ್ ಅನ್ನು ಒಪ್ಪಿಸುತ್ತೇವೆ. ಒಂದು ವೇಳೆ ಸ್ಥಿತಿ ಡೈರೆಕ್ಟರಿ ಅಸ್ತಿತ್ವವು ಸುಳ್ಳು (67 ನೇ ಸಾಲು) ನಾವು ನೋಡಿರ್ ಕಾರ್ಯಕ್ಕೆ ಕರೆ ಮಾಡುತ್ತೇವೆ ಮತ್ತು ಅಸಹಜ ಮುಕ್ತಾಯವನ್ನು ಸೂಚಿಸುವ ಮೂಲಕ ನಾವು ನಿರ್ಗಮಿಸುತ್ತೇವೆ.

ಮರಣದಂಡನೆ ಮತ್ತು ಪರೀಕ್ಷೆ

$ encontrar
$ encontrar -a
$ encontrar -h
$ encontrar index aljflaskjf #directorio no existe
$ encontrar index public_html
$

En ಬ್ಯಾಷ್ ಬಗ್ಗೆ ಮುಂದಿನ ಲೇಖನಗಳು ನಾವು ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ನೋಡುತ್ತೇವೆ ಕಾರ್ಯಗಳಲ್ಲಿ ನಿಯತಾಂಕಗಳನ್ನು ಬಳಸಿಹೇಗೆ ಎಂದು ನಾವು ನೋಡುತ್ತೇವೆ ರಿಟರ್ನ್ ಡೇಟಾವನ್ನು ನಿರೂಪಿಸಿ ಅದೇ.

ಈ ಪೋಸ್ಟ್ ನಿಮಗೆ ಉಪಯುಕ್ತವಾಗಿದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ ಮತ್ತು ಭಾವಿಸುತ್ತೇನೆ.


ಲೇಖನದ ವಿಷಯವು ನಮ್ಮ ತತ್ವಗಳಿಗೆ ಬದ್ಧವಾಗಿದೆ ಸಂಪಾದಕೀಯ ನೀತಿ. ದೋಷವನ್ನು ವರದಿ ಮಾಡಲು ಕ್ಲಿಕ್ ಮಾಡಿ ಇಲ್ಲಿ.

ಪ್ರತಿಕ್ರಿಯಿಸಿ, ನಿಮ್ಮದನ್ನು ಬಿಡಿ

ನಿಮ್ಮ ಅಭಿಪ್ರಾಯವನ್ನು ಬಿಡಿ

ನಿಮ್ಮ ಈಮೇಲ್ ವಿಳಾಸ ಪ್ರಕಟವಾದ ಆಗುವುದಿಲ್ಲ.

*

*

  1. ಡೇಟಾಗೆ ಜವಾಬ್ದಾರಿ: ಮಿಗುಯೆಲ್ ಏಂಜೆಲ್ ಗಟಾನ್
  2. ಡೇಟಾದ ಉದ್ದೇಶ: ನಿಯಂತ್ರಣ SPAM, ಕಾಮೆಂಟ್ ನಿರ್ವಹಣೆ.
  3. ಕಾನೂನುಬದ್ಧತೆ: ನಿಮ್ಮ ಒಪ್ಪಿಗೆ
  4. ಡೇಟಾದ ಸಂವಹನ: ಕಾನೂನುಬದ್ಧ ಬಾಧ್ಯತೆಯನ್ನು ಹೊರತುಪಡಿಸಿ ಡೇಟಾವನ್ನು ಮೂರನೇ ವ್ಯಕ್ತಿಗಳಿಗೆ ಸಂವಹನ ಮಾಡಲಾಗುವುದಿಲ್ಲ.
  5. ಡೇಟಾ ಸಂಗ್ರಹಣೆ: ಆಕ್ಸೆಂಟಸ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳು (ಇಯು) ಹೋಸ್ಟ್ ಮಾಡಿದ ಡೇಟಾಬೇಸ್
  6. ಹಕ್ಕುಗಳು: ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ನೀವು ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಮಿತಿಗೊಳಿಸಬಹುದು, ಮರುಪಡೆಯಬಹುದು ಮತ್ತು ಅಳಿಸಬಹುದು.

  1.   ಜೋಸಿಯಾ ಡಿಜೊ

    ಹಲೋ,
    ಬಹಳ ಆಸಕ್ತಿದಾಯಕ ಮತ್ತು ಸ್ಪಷ್ಟ.
    ಕೇವಲ ಟಿಪ್ಪಣಿ; EXIT_BAD ವೇರಿಯೇಬಲ್ ಮುಂದೆ 68 ನೇ ಸಾಲಿನಲ್ಲಿ a missing ಕಾಣೆಯಾಗಿದೆ.
    ನಿಮ್ಮ ಲೇಖನಗಳೊಂದಿಗೆ ನಾನು ಖಚಿತವಾಗಿ ಕಲಿಯುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತೇನೆ.