ಬ್ಯಾಷ್ ಬಳಸಿ ನಿಮ್ಮ ಸ್ವಂತ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ರಚಿಸಿ

ಲಿನಕ್ಸ್ ಕಲಿಯುವುದು

ನಾವು ಬಳಸುತ್ತಿರುವ ಲಿನಕ್ಸ್ ವಿತರಣೆಯ ಹೊರತಾಗಿಯೂ, ನಾವು ಈ ವ್ಯವಸ್ಥೆಯ ಬಳಕೆಗೆ ಬಂದ ಕೂಡಲೇ ನನ್ನ ನೆಚ್ಚಿನ ಉಬುಂಟು ಎಂದು ಅನುಮಾನವಿಲ್ಲ, ಕೆಲವು ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಅಗತ್ಯವಿದೆ. ಅಂದರೆ: ನಮ್ಮದನ್ನು ರಚಿಸಿ ಸ್ವಂತ ಆಜ್ಞೆಗಳು ಅದು ಕೆಲವು ಆಜ್ಞೆಗಳನ್ನು ವೈಯಕ್ತಿಕಗೊಳಿಸಿದ ರೀತಿಯಲ್ಲಿ ನಿರ್ವಹಿಸುತ್ತದೆ. ಈ ಅಗತ್ಯವು ಕೆಲವು ಕಾರಣಗಳಿಂದಾಗಿರಬಹುದು:

  • ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಸರಳಗೊಳಿಸಿ ನಾವು ಸಾಮಾನ್ಯವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಆಜ್ಞೆಗಳ.
  • ಯಾವುದನ್ನೂ ಒಳಗೊಳ್ಳುವ ಕ್ರಮಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಿ ಅಗತ್ಯವು ವ್ಯವಸ್ಥೆಯಲ್ಲಿ se ಹಿಸಲಾಗಿಲ್ಲ ಕಾರ್ಯಾಚರಣೆಯ.
  • ಅನುಕ್ರಮ ಆದೇಶಗಳು ನಾವು ಖಚಿತವಾಗಿ ಪುನರಾವರ್ತಿಸುತ್ತೇವೆ.

ಯಾವುದೇ ಡೈರೆಕ್ಟರಿಯಿಂದ / ಬ್ಯಾಷ್ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಚಲಾಯಿಸಬಹುದಾದರೂ, ಇದು ಸಾಮಾನ್ಯವಾಗಿರುತ್ತದೆ ಈ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಹೋಸ್ಟ್ ಮಾಡಲು ಡೈರೆಕ್ಟರಿಯನ್ನು ರಚಿಸಿ. ನನ್ನ ವಿಷಯದಲ್ಲಿ:

$ 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

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

ನಮ್ಮ ಮೊದಲ ಕರೆ ಸಾಲು «ಶೆಬಾಂಗ್»(#! / Usr / bin / env bash) ವರದಿ ಮಾಡಲು ಲಿನಕ್ಸ್ ಅನ್ನು ಕೇಳಿ ಬ್ಯಾಷ್ ಶೆಲ್ ಎಲ್ಲಿದೆ ಮತ್ತು ಕೆಳಗಿನವುಗಳನ್ನು ಬ್ಯಾಷ್‌ನ ಅವಶ್ಯಕತೆಗಳಿಗೆ ಅನುಗುಣವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ಈ ಮುನ್ನೆಚ್ಚರಿಕೆ ಅದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಅನುಕೂಲಕರವಾಗಿದೆ ನಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು ಯಾವುದೇ ಸ್ಥಾಪನೆಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ. ಮತ್ತೊಂದು ಸಾಧ್ಯ ಶೆಬಾಂಗ್ ಅವನು ನಕ್ಕನು:

#!/bin/bash

ಅವುಗಳ ನಡುವಿನ ವ್ಯತ್ಯಾಸವು ತುಂಬಾ ವಿಲಕ್ಷಣವಾಗಿರಬಹುದು, ಮತ್ತು ನಾನು ಅದನ್ನು ವಿವರಿಸುತ್ತೇನೆ. ಈ ಕೊನೆಯ ನಮ್ಮ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ನಾನು ume ಹಿಸುತ್ತೇನೆ ಬ್ಯಾಷ್ ಶೆಲ್ / ಬಿನ್ / ಬ್ಯಾಷ್ ವಿಳಾಸದಲ್ಲಿದೆ. ಹೇಗಾದರೂ, ನಾನು ಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ಪ್ರಸ್ತಾಪಿಸುತ್ತೇನೆ ಅದು ಎಲ್ಲಿದೆ ಎಂದು ನನಗೆ ತಿಳಿದಿಲ್ಲ ಎಂದು ನಾನು ess ಹಿಸುತ್ತೇನೆ ಬ್ಯಾಷ್ ಇಂಟರ್ಪ್ರಿಟರ್. ಅವನಿಗೆ ಆ ವಿಳಾಸವನ್ನು ಒದಗಿಸಲು ನಾನು ವ್ಯವಸ್ಥೆಯನ್ನು ಕೇಳುತ್ತೇನೆ.

ಮೂರನೇ ಸಾಲು: ನೀವು ನೋಡುವಂತೆ, ಎರಡನೇ ಸಾಲು ಒಂದು ವೇಳೆ. ಅಕ್ಷರಗಳನ್ನು ಬ್ಯಾಷ್ ಮಾಡಲು «$#« ನಾವು ಆಜ್ಞಾ ಸಾಲಿನಿಂದ ಹಾದುಹೋಗುವ ನಿಯತಾಂಕಗಳ ಸಂಖ್ಯೆಯನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಆದ್ದರಿಂದ, »if [$ # -lt 1];» ಅಕ್ಷರಶಃ ಅರ್ಥ "ನಿಯತಾಂಕಗಳ ಸಂಖ್ಯೆ 1 ಕ್ಕಿಂತ ಕಡಿಮೆಯಿದ್ದರೆ".

ನಾಲ್ಕನೇ ಸಾಲು: ನಂತರ (ಅಕ್ಷರಶಃ ಇಂಗ್ಲಿಷ್‌ನಿಂದ ಅನುವಾದಿಸುವುದು: ನಂತರ), ಇಲ್ಲಿ ಮುಂದಿನದು ಏನು ಎಂದು ಸೂಚಿಸಲಾಗುತ್ತದೆ ಸ್ಥಿತಿಯ ಮೌಲ್ಯಮಾಪನ ಮಾಡಿದಾಗ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತದೆ if ನಿಜ: ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ನಿಯತಾಂಕಗಳ ಸಂಖ್ಯೆ 1 ಕ್ಕಿಂತ ಕಡಿಮೆಯಿದೆ, ಅಂದರೆ ಶೂನ್ಯ.

ಐದನೇ ಸಾಲು: ನಾವು ಯಾವುದೇ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಯಾವುದೇ ನಿಯತಾಂಕಗಳಿಲ್ಲದೆ ಕಾರ್ಯಗತಗೊಳಿಸಿದರೆ, ನಾವು ಟರ್ಮಿನಲ್‌ನಲ್ಲಿ ತೋರಿಸುತ್ತೇವೆ «ನೀವು ನಿಯತಾಂಕವನ್ನು ರವಾನಿಸಬೇಕಾಗುತ್ತದೆ».

ಆರನೇ ಸಾಲು: ಕೆಳಗಿನವುಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ ಎಂದು ಸೂಚಿಸುತ್ತದೆ ನಾವು ಘೋಷಿಸಿದ ಸ್ಥಿತಿಯು ನಿಜವಲ್ಲ.

ಏಳನೇ ಸಾಲು: ಸೆ ಆಜ್ಞೆಯನ್ನು ಚಲಾಯಿಸಿ «ಎಲ್ಲಿದೆ« ನಾವು ಹಾದುಹೋಗಿರುವ ವಿಷಯದೊಂದಿಗೆ ಮೊದಲ ನಿಯತಾಂಕ.

ಎಂಟನೇ ಸಾಲು: with ನೊಂದಿಗೆfiThe ಬ್ಲಾಕ್ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ ಎಂದು ಸೂಚಿಸುತ್ತದೆ if.

ನಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ

ಇದು ಮುಖ್ಯ ಬರೆಯಲು ಅನುಮತಿಗಳನ್ನು ಸೇರಿಸಿ ಸ್ಕ್ರಿಪ್ಟ್‌ಗೆ:

$ chmod -x ~/.bin/donde

ಇದು ಇಲ್ಲದೆ, "ಅನುಮತಿ ನಿರಾಕರಿಸಲಾಗಿದೆ" ದೋಷ ಕಾಣಿಸುತ್ತದೆ.. ಅದರ ನಂತರ, ನಾವು ನಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಚಲಾಯಿಸಬಹುದು.

$ donde 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

ಮರುಪಡೆಯಲಾಗುತ್ತಿದೆ

  • ನಾವು ಎ ನಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಇರಿಸಲು ಡೈರೆಕ್ಟರಿ ".ಬಿನ್".
  • ನಾವು ಒದಗಿಸುತ್ತೇವೆ ಈ ಡೈರೆಕ್ಟರಿಯನ್ನು ಅದರ ಆಜ್ಞಾ ಹುಡುಕಾಟಗಳಲ್ಲಿ ಸೇರಿಸಲು ಲಿನಕ್ಸ್‌ಗೆ ಮಾಹಿತಿ.
  • ನಾವು ನಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ರಚಿಸುತ್ತೇವೆ.
  • ನಡುವಿನ ವ್ಯತ್ಯಾಸ ವಿಭಿನ್ನ ಶೆಬಾಂಗ್.
  • ಬಳಕೆ para # ನೊಂದಿಗೆ ರವಾನಿಸಲಾದ ನಿಯತಾಂಕಗಳ ಸಂಖ್ಯೆ.
  • ಬಳಕೆ ಮೊದಲ ನಿಯತಾಂಕ ಕಾನ್ $1.

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


4 ಕಾಮೆಂಟ್‌ಗಳು, ನಿಮ್ಮದನ್ನು ಬಿಡಿ

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

ನಿಮ್ಮ ಈಮೇಲ್ ವಿಳಾಸ ಪ್ರಕಟವಾದ ಆಗುವುದಿಲ್ಲ. ಅಗತ್ಯವಿರುವ ಜಾಗ ಗುರುತಿಸಲಾಗಿದೆ *

*

*

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

  1.   ಮಿಗುಯೆಲ್ ಡಿಜೊ

    ತುಂಬಾ ಒಳ್ಳೆಯದು ಮತ್ತು ಚೆನ್ನಾಗಿ ವಿವರಿಸಲಾಗಿದೆ, ಆದರೆ ನಿಯತಾಂಕವು ಯಾವುದನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತದೆ?

    1.    ಪೆಡ್ರೊ ರೂಯಿಜ್ ಹಿಡಾಲ್ಗೊ ಪ್ಲೇಸ್‌ಹೋಲ್ಡರ್ ಚಿತ್ರ ಡಿಜೊ

      ಧನ್ಯವಾದಗಳು ಮಿಗುಯೆಲ್!

      ಪ್ರೋಗ್ರಾಂ, ಕಾರ್ಯ ಅಥವಾ ವ್ಯವಸ್ಥೆಗೆ ಒದಗಿಸಲಾದ ಎಲ್ಲಾ ಪೂರಕ ಮಾಹಿತಿಯನ್ನು ನಿಯತಾಂಕದ ಮೂಲಕ ನಾನು ಅರ್ಥಮಾಡಿಕೊಂಡಿದ್ದೇನೆ. ಇದು ತೊಡಕಿನದ್ದಾಗಿರುವುದರಿಂದ, ಕೆಲವು ಉದಾಹರಣೆಗಳೊಂದಿಗೆ ನಾನು ನಿಮಗೆ ಉತ್ತರಿಸುತ್ತೇನೆ.

      A.txt ಫೈಲ್ ಅನ್ನು b.txt ಫೈಲ್‌ಗೆ ನಕಲಿಸಲು ಲಿನಕ್ಸ್ ಆಜ್ಞೆಯಲ್ಲಿ, ನಾವು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಬರೆಯುತ್ತೇವೆ:

      $cp a.txt b.txt

      ಇಲ್ಲಿ ಸಿಪಿ ಪ್ರೋಗ್ರಾಂ ಎರಡು ನಿಯತಾಂಕಗಳನ್ನು ಪಡೆಯುತ್ತದೆ, ಅದು ಎರಡು ಫೈಲ್‌ಗಳ ಹೆಸರುಗಳು, ಮೊದಲನೆಯದು (ಅಸ್ತಿತ್ವದಲ್ಲಿರಬೇಕು) a.txt ಮತ್ತು ಎರಡನೆಯ b.txt.

      ಮತ್ತೊಂದು ಉದಾಹರಣೆ: ನೀವು ಆಜ್ಞೆಯೊಂದಿಗೆ ಕನ್ಸೋಲ್‌ನಿಂದ ಮುದ್ರಿಸಲು ಕಳುಹಿಸಿದರೆ

      $ lp file.pdf

      ಈ ಸಂದರ್ಭದಲ್ಲಿ "file.pdf" ಎಲ್ಪಿ ಪ್ರೋಗ್ರಾಂಗೆ ಒಂದು ನಿಯತಾಂಕವಾಗಿದೆ.

      ನಿಮ್ಮ ಅನುಮಾನಗಳನ್ನು ನಾನು ತೃಪ್ತಿಪಡಿಸಿದ್ದೇನೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ.

      ಸಂಬಂಧಿಸಿದಂತೆ

  2.   ಮಿಗುಯೆಲ್ ಡಿಜೊ

    ನನ್ನ ಕಾಮೆಂಟ್‌ಗಳು ಹೊರಬರುವುದಿಲ್ಲ, ಇದು ಗೌರವದ ಕೊರತೆ, ನಾನು ಮತ್ತೆ ಈ ವೇದಿಕೆಗೆ ಹಿಂತಿರುಗುವುದಿಲ್ಲ.

    1.    ಪೆಡ್ರೊ ರೂಯಿಜ್ ಹಿಡಾಲ್ಗೊ ಪ್ಲೇಸ್‌ಹೋಲ್ಡರ್ ಚಿತ್ರ ಡಿಜೊ

      ಏನಾಯಿತು ಎಂದು ನನಗೆ ತಿಳಿದಿಲ್ಲ, ಯಾವುದೇ ಸಂದರ್ಭದಲ್ಲಿ ಅದನ್ನು ಪ್ರಕಟಿಸಲಾಗಿದೆ.

      ಗ್ರೀಟಿಂಗ್ಸ್.