ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื
Bash Scripts ื—ืœืง 2: ืœื•ืœืื•ืช
ืชืกืจื™ื˜ื™ Bash, ื—ืœืง 3: ืืคืฉืจื•ื™ื•ืช ืฉื•ืจืช ืคืงื•ื“ื” ื•ืžืชื’ื™ื
ืชืกืจื™ื˜ื™ Bash, ื—ืœืง 4: ืงืœื˜ ื•ืคืœื˜
ืชืกืจื™ื˜ื™ Bash, ื—ืœืง 5: ืื•ืชื•ืช, ืžืฉื™ืžื•ืช ืจืงืข, ื ื™ื”ื•ืœ ืชืกืจื™ื˜ื™ื
Bash Scripts, ื—ืœืง 6: ืคื•ื ืงืฆื™ื•ืช ื•ืคื™ืชื•ื— ืกืคืจื™ื™ื”
ืชืกืจื™ื˜ื™ Bash, ื—ืœืง 7: ืกื“ ื•ืขื™ื‘ื•ื“ ืชืžืœื™ืœื™ื
Bash Scripts, ื—ืœืง 8: The awk Data Processing Language
Bash Scripts ื—ืœืง 9: ื‘ื™ื˜ื•ื™ื™ื ืจื’ื•ืœืจื™ื™ื
Bash Scripts ื—ืœืง 10: ื“ื•ื’ืžืื•ืช ืžืขืฉื™ื•ืช
ืกืงืจื™ืคื˜ื™ื ืฉืœ Bash, ื—ืœืง 11: ืฆื™ืคื™ื•ืช ื•ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ื›ืœื™ ืขื–ืจ ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ื™ื

ื”ื™ื•ื ื ื“ื‘ืจ ืขืœ ืชืกืจื™ื˜ื™ bash. ื–ื” - ืกืงืจื™ืคื˜ื™ื ืฉืœ ืฉื•ืจืช ื”ืคืงื•ื“ื”, ื ื›ืชื‘ ืขื‘ื•ืจ ืžืขื˜ืคืช bash. ื™ืฉื ืŸ ืงื•ื ื›ื™ื•ืช ื ื•ืกืคื•ืช, ื›ื’ื•ืŸ zsh, tcsh, ksh, ืืš ื ืชืžืงื“ ื‘-bash. ื”ื—ื•ืžืจ ื”ื–ื” ืžื™ื•ืขื“ ืœื›ื•ืœื, ื”ืชื ืื™ ื”ื™ื—ื™ื“ ื”ื•ื ื”ื™ื›ื•ืœืช ืœืขื‘ื•ื“ ื‘ื• ืฉื•ืจืช ื”ืคืงื•ื“ื” ืœื™ื ื•ืงืก.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื

ืกืงืจื™ืคื˜ื™ื ืฉืœ ืฉื•ืจืช ื”ืคืงื•ื“ื” ื”ื ืงื‘ื•ืฆื•ืช ืฉืœ ืื•ืชืŸ ืคืงื•ื“ื•ืช ืฉื ื™ืชืŸ ืœื”ื–ื™ืŸ ืžื”ืžืงืœื“ืช, ืœืืกื•ืฃ ื‘ืงื‘ืฆื™ื ื•ืœืื—ื“ ืื•ืชื ื‘ืžื˜ืจื” ืžืฉื•ืชืคืช ื›ืœืฉื”ื™. ื™ื—ื“ ืขื ื–ืืช, ืชื•ืฆืื•ืช ืขื‘ื•ื“ืช ื”ืฆื•ื•ืชื™ื ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ื‘ืขืœื•ืช ืขืจืš ืขืฆืžืื™ ืื• ืœืฉืžืฉ ืชืฉื•ืžื” ืœืฆื•ื•ืชื™ื ืื—ืจื™ื. ืกืงืจื™ืคื˜ื™ื ื”ื ื“ืจืš ืจื‘ืช ืขื•ืฆืžื” ืœื”ืคื•ืš ืคืขื•ืœื•ืช ืฉื‘ื•ืฆืขื• ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืœืื•ื˜ื•ืžื˜ื™ื•ืช.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื

ืื– ืื ืื ื—ื ื• ืžื“ื‘ืจื™ื ืขืœ ืฉื•ืจืช ื”ืคืงื•ื“ื”, ื”ื™ื ืžืืคืฉืจืช ืœืš ืœื‘ืฆืข ืžืกืคืจ ืคืงื•ื“ื•ืช ื‘ื‘ืช ืื—ืช, ืœื”ื–ื™ืŸ ืื•ืชืŸ ืขื ื ืงื•ื“ื”-ืคืกื™ืง:

pwd ; whoami

ืœืžืขืฉื”, ืื ื ื™ืกื™ืช ืืช ื–ื” ื‘ื˜ืจืžื™ื ืœ ืฉืœืš, ืกืงืจื™ืคื˜ ื”-bash ื”ืจืืฉื•ืŸ ืฉืœืš ืฉืžืฉืชืžืฉ ื‘ืฉืชื™ ืคืงื•ื“ื•ืช ื›ื‘ืจ ื ื›ืชื‘. ื–ื” ืขื•ื‘ื“ ื›ื›ื”. ืฆื•ื•ืช ืจืืฉื•ืŸ pwd ืžืฆื™ื’ ืžื™ื“ืข ืขืœ ืกืคืจื™ื™ืช ื”ืขื‘ื•ื“ื” ื”ื ื•ื›ื—ื™ืช, ื•ืœืื—ืจ ืžื›ืŸ ืืช ื”ืคืงื•ื“ื” whoamiืžืฆื™ื’ ืžื™ื“ืข ืขืœ ื”ืžืฉืชืžืฉ ืฉื‘ื• ืืชื” ืžื—ื•ื‘ืจ.

ื‘ื’ื™ืฉื” ื–ื• ื ื™ืชืŸ ืœืฉืœื‘ ื›ืžื” ืคืงื•ื“ื•ืช ืฉืชืจืฆื• ื‘ืฉื•ืจื” ืื—ืช, ื”ืžื’ื‘ืœื” ื”ื™ื ืจืง ื”ืžืกืคืจ ื”ืžืจื‘ื™ ืฉืœ ืืจื’ื•ืžื ื˜ื™ื ืฉื ื™ืชืŸ ืœื”ืขื‘ื™ืจ ืœืชื•ื›ื ื™ืช. ืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ืžื’ื‘ืœื” ื–ื• ืขื ื”ืคืงื•ื“ื” ื”ื‘ืื”:

getconf ARG_MAX

ืฉื•ืจืช ื”ืคืงื•ื“ื” ื”ื™ื ื›ืœื™ ื ื”ื“ืจ, ืื‘ืœ ืืชื” ืฆืจื™ืš ืœื”ื–ื™ืŸ ื‘ื” ืคืงื•ื“ื•ืช ื‘ื›ืœ ืคืขื ืฉืืชื” ืฆืจื™ืš ืื•ืชืŸ. ืžื” ืื ื ื›ืชื•ื‘ ืงื‘ื•ืฆื” ืฉืœ ืคืงื•ื“ื•ืช ืœืงื•ื‘ืฅ ื•ืคืฉื•ื˜ ื ืงืจื ืœืงื•ื‘ืฅ ื”ื–ื” ื›ื“ื™ ืœื‘ืฆืข ืื•ืชืŸ? ืœืžืขืฉื”, ื”ืงื•ื‘ืฅ ืฉืื ื• ืžื“ื‘ืจื™ื ืขืœื™ื• ื ืงืจื ืกืงืจื™ืคื˜ ืฉื•ืจืช ื”ืคืงื•ื“ื”.

ืื™ืš ืคื•ืขืœื™ื ืชืกืจื™ื˜ื™ bash

ืฆื•ืจ ืงื•ื‘ืฅ ืจื™ืง ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื” touch. ื‘ืฉื•ืจื” ื”ืจืืฉื•ื ื” ืฉืœื•, ืขืœื™ืš ืœืฆื™ื™ืŸ ื‘ืื™ื–ื• ืžืขื˜ืคืช ืื ื• ื”ื•ืœื›ื™ื ืœื”ืฉืชืžืฉ. ืื ื—ื ื• ืžืชืขื ื™ื™ื ื™ื ื‘ bash, ื›ืš ืฉื”ืฉื•ืจื” ื”ืจืืฉื•ื ื” ืฉืœ ื”ืงื•ื‘ืฅ ืชื”ื™ื”:

#!/bin/bash

ื‘ืžืงื•ื ืื—ืจ ื‘ืงื•ื‘ืฅ ื–ื”, ืกืžืœ ื”-hash ืžืฉืžืฉ ืœืฆื™ื•ืŸ ื”ืขืจื•ืช ืฉื”ืžืขื˜ืคืช ืœื ืžืขื‘ื“ืช. ืขื ื–ืืช, ื”ืฉื•ืจื” ื”ืจืืฉื•ื ื” ื”ื™ื ืžืงืจื” ืžื™ื•ื—ื“, ื–ื” ืกื™ืžืŸ ืœื™ืจื” ื•ืื—ืจื™ื• ืกื™ืžืŸ ืงืจื™ืื” (ืจืฆืฃ ื–ื” ื ืงืจื ืฉื‘ื ื’) ื•ื”ื“ืจืš ืืœ bash, ืฆื™ื™ืŸ ืœืžืขืจื›ืช ืฉื”ืกืงืจื™ืคื˜ ื ื•ืฆืจ ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจื• bash.

ืคืงื•ื“ื•ืช ืžืขื˜ืคืช ืžื•ืคืจื“ื•ืช ืขืœ ื™ื“ื™ ื”ื–ื ืช ืฉื•ืจื”, ื”ืขืจื•ืช ืžื•ืคืจื“ื•ืช ืขืœ ื™ื“ื™ ืกื™ืžืŸ ืคืื•ื ื“. ื›ืš ื–ื” ื ืจืื”:

#!/bin/bash
# This is a comment
pwd
whoami

ื›ืืŸ, ืžืžืฉ ื›ืžื• ื‘ืฉื•ืจืช ื”ืคืงื•ื“ื”, ื ื™ืชืŸ ืœื›ืชื•ื‘ ืคืงื•ื“ื•ืช ื‘ืฉื•ืจื” ืื—ืช, ื•ืœื”ืคืจื™ื“ ื‘ื™ื ื™ื”ืŸ ื‘ื ืงื•ื“ื” ืคืกื™ืง. ืขื ื–ืืช, ืื ืืชื” ื›ื•ืชื‘ ืคืงื•ื“ื•ืช ื‘ืฉื•ืจื•ืช ืฉื•ื ื•ืช, ื”ืงื•ื‘ืฅ ืงืœ ื™ื•ืชืจ ืœืงืจื™ืื”. ื‘ื›ืœ ืžืงืจื”, ื”ืงืœื™ืคื” ืชืขื‘ื“ ืื•ืชื.

ื”ื’ื“ืจืช ื”ืจืฉืื•ืช ื‘ืงื•ื‘ืฅ ืกืงืจื™ืคื˜

ืฉืžื•ืจ ืืช ื”ืงื•ื‘ืฅ ืขืœ ื™ื“ื™ ืžืชืŸ ืฉื myscript, ื•ืชืกืจื™ื˜ ื”-bash ื›ืžืขื˜ ื”ื•ืฉืœื. ื›ืขืช ื ื•ืชืจ ืจืง ืœื”ืคื•ืš ืืช ื”ืงื•ื‘ืฅ ื”ื–ื” ืœื‘ืจ-ื”ืคืขืœื”, ืื—ืจืช, ื›ืฉืชื ืกื” ืœื”ืคืขื™ืœ ืื•ืชื•, ืชื™ืชืงืœ ื‘ืฉื’ื™ืื” Permission denied.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื
ื ื™ืกื™ื•ืŸ ืœื”ืคืขื™ืœ ืงื•ื‘ืฅ ืกืงืจื™ืคื˜ ืขื ื”ืจืฉืื•ืช ืžื•ื’ื“ืจื•ืช ื‘ืฆื•ืจื” ืฉื’ื•ื™ื”

ื‘ื•ืื• ื ืขืฉื” ืืช ื”ืงื•ื‘ืฅ ื‘ืจ ื”ืคืขืœื”:

chmod +x ./myscript

ืขื›ืฉื™ื• ื‘ื•ืื• ื ื ืกื” ืœื‘ืฆืข ืืช ื–ื”:

./myscript

ืœืื—ืจ ื”ื’ื“ืจืช ื”ื”ืจืฉืื•ืช, ื”ื›ืœ ืขื•ื‘ื“ ื›ืžื• ืฉืฆืจื™ืš.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื
ื”ืจืฅ ื‘ื”ืฆืœื—ื” ืืช ืกืงืจื™ืคื˜ bash

ืคืœื˜ ื”ื•ื“ืขื”

ื›ื“ื™ ืœื”ื“ืคื™ืก ื˜ืงืกื˜ ืœืžืกื•ืฃ ืœื™ื ื•ืงืก, ื”ืฉืชืžืฉ ื‘ืคืงื•ื“ื” echo. ื‘ื•ืื• ื ืฉืชืžืฉ ื‘ื™ื“ืข ืฉืœ ืขื•ื‘ื“ื” ื–ื• ื•ื ืขืจื•ืš ืืช ื”ืกืงืจื™ืคื˜ ืฉืœื ื•, ื•ื ื•ืกื™ืฃ ื”ืกื‘ืจื™ื ืœื ืชื•ื ื™ื ืฉืžื•ืฆื™ืื™ื ืืช ื”ืคืงื•ื“ื•ืช ืฉื›ื‘ืจ ื ืžืฆืื•ืช ื‘ื•:

#!/bin/bash
# our comment is here
echo "The current directory is:"
pwd
echo "The user logged in is:"
whoami

ื”ื ื” ืžื” ืฉืงื•ืจื” ืœืื—ืจ ื”ืคืขืœืช ื”ืกืงืจื™ืคื˜ ื”ืžืขื•ื“ื›ืŸ.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื
ืคืœื˜ ื”ื•ื“ืขื•ืช ืžืชื•ืš ืกืงืจื™ืคื˜

ื›ืขืช ื ื•ื›ืœ ืœื”ืฆื™ื’ ืชื•ื•ื™ื•ืช ื”ืกื‘ืจ ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื” echo. ืื ืื™ื ืš ื™ื•ื“ืข ื›ื™ืฆื“ ืœืขืจื•ืš ืงื•ื‘ืฅ ื‘ืืžืฆืขื•ืช ื›ืœื™ ืœื™ื ื•ืงืก, ืื• ืื ืœื ืจืื™ืช ืืช ื”ืคืงื•ื“ื” ื‘ืขื‘ืจ echo, ื”ื‘ื˜ ื‘ ื–ื” ื—ื•ืžืจ.

ืฉื™ืžื•ืฉ ื‘ืžืฉืชื ื™ื

ืžืฉืชื ื™ื ืžืืคืฉืจื™ื ืœืš ืœืื—ืกืŸ ืžื™ื“ืข ื‘ืงื•ื‘ืฅ ืกืงืจื™ืคื˜, ื›ื’ื•ืŸ ืชื•ืฆืื•ืช ืฉืœ ืคืงื•ื“ื•ืช, ืœืฉื™ืžื•ืฉ ืขืœ ื™ื“ื™ ืคืงื•ื“ื•ืช ืื—ืจื•ืช.

ืื™ืŸ ืฉื•ื ื“ื‘ืจ ืจืข ื‘ื‘ื™ืฆื•ืข ืคืงื•ื“ื•ืช ื‘ื•ื“ื“ื•ืช ืžื‘ืœื™ ืœืื—ืกืŸ ืืช ืชื•ืฆืื•ืช ืขื‘ื•ื“ืชืŸ, ืืš ื”ืืคืฉืจื•ื™ื•ืช ืฉืœ ื’ื™ืฉื” ื–ื• ืžื•ื’ื‘ืœื•ืช ืžืื•ื“.

ื™ืฉื ื ืฉื ื™ ืกื•ื’ื™ื ืฉืœ ืžืฉืชื ื™ื ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื”ื ื‘-bash scripts:

  • ืžืฉืชื ื™ ืกื‘ื™ื‘ื”
  • ืžืฉืชื ื™ ืžืฉืชืžืฉ

ืžืฉืชื ื™ ืกื‘ื™ื‘ื”

ืœืคืขืžื™ื ืคืงื•ื“ื•ืช ืžืขื˜ืคืช ืฆืจื™ื›ื•ืช ืœืขื‘ื•ื“ ืขื ื ืชื•ื ื™ ืžืขืจื›ืช ืžืกื•ื™ืžื™ื. ืœื“ื•ื’ืžื”, ื”ื ื” ืื™ืš ืœื”ืฆื™ื’ ืืช ืกืคืจื™ื™ืช ื”ื‘ื™ืช ืฉืœ ื”ืžืฉืชืžืฉ ื”ื ื•ื›ื—ื™:

#!/bin/bash
# display user home
echo "Home for the current user is: $HOME"

ืฉื™ืžื• ืœื‘ ืฉืื ื• ื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘ืžืฉืชื ื” ื”ืžืขืจื›ืช $HOME ื‘ืžื™ืจื›ืื•ืช ื›ืคื•ืœื•ืช, ื–ื” ืœื ื™ืžื ืข ืžื”ืžืขืจื›ืช ืœื–ื”ื•ืช ืื•ืชื•. ื–ื” ืžื” ืฉืงื•ืจื” ืื ืืชื” ืžืคืขื™ืœ ืืช ื”ืกืงืจื™ืคื˜ ืฉืœืžืขืœื”.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื
ืฉื™ืžื•ืฉ ื‘ืžืฉืชื ื” ืกื‘ื™ื‘ื” ื‘ืกืงืจื™ืคื˜

ืื‘ืœ ืžื” ืื ืืชื” ืจื•ืฆื” ืœื”ืฆื™ื’ ืฉืœื˜ ื“ื•ืœืจ? ื‘ื•ืื• ื ื ืกื” ืืช ื–ื”:

echo "I have $1 in my pocket"

ื”ืžืขืจื›ืช ืชื–ื”ื” ืกื™ืžืŸ ื“ื•ืœืจ ื‘ืžื—ืจื•ื–ืช ืžื•ืคืจื“ืช ื‘ืžืจื›ืื•ืช ื•ืชื ื™ื— ืฉื”ืคื ื™ื ื• ืœืžืฉืชื ื”. ื”ืกืงืจื™ืคื˜ ื™ื ืกื” ืœื”ืฆื™ื’ ืืช ื”ืขืจืš ืฉืœ ืžืฉืชื ื” ืœื ืžื•ื’ื“ืจ. $1. ื–ื” ืœื ืžื” ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื. ืžื” ืœืขืฉื•ืช?

ื‘ืžืฆื‘ ื›ื–ื”, ืฉื™ืžื•ืฉ ื‘ืชื• ืฉืœื™ื˜ื”, ืงื• ื ื˜ื•ื™, ืœืคื ื™ ืกื™ืžืŸ ื”ื“ื•ืœืจ ื™ืขื–ื•ืจ:

echo "I have $1 in my pocket"

ื”ืกืงืจื™ืคื˜ ื™ื•ืฆื™ื ื›ืขืช ื‘ื“ื™ื•ืง ืืช ื”ืฆืคื•ื™.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื
ืฉื™ืžื•ืฉ ื‘ืจืฆืฃ ื‘ืจื™ื—ื” ื›ื“ื™ ืœื”ื•ืฆื™ื ืกื™ืžืŸ ื“ื•ืœืจ

ืžืฉืชื ื™ ืžืฉืชืžืฉ

ื‘ื ื•ืกืฃ ืœืžืฉืชื ื™ ืกื‘ื™ื‘ื”, ืกืงืจื™ืคื˜ื™ื ืฉืœ bash ืžืืคืฉืจื™ื ืœืš ืœื”ื’ื“ื™ืจ ื•ืœื”ืฉืชืžืฉ ื‘ืžืฉืชื ื™ื ืžืฉืœืš ื‘ืกืงืจื™ืคื˜. ืžืฉืชื ื™ื ื›ืืœื” ืžื—ื–ื™ืงื™ื ืขืจืš ืขื“ ืฉื”ืกืงืจื™ืคื˜ ืžืกืชื™ื™ื.

ื‘ื“ื•ืžื” ืœืžืฉืชื ื™ ืžืขืจื›ืช, ื ื™ืชืŸ ืœื’ืฉืช ืœืžืฉืชื ื™ ืžืฉืชืžืฉ ื‘ืืžืฆืขื•ืช ืกื™ืžืŸ ื”ื“ื•ืœืจ:
TNW-CUS-FMP - ืงื•ื“ ืคืจื•ืžื• ืœื”ื ื—ื” ืฉืœ 10% ืขืœ ื”ืฉื™ืจื•ืชื™ื ืฉืœื ื•, ื–ืžื™ืŸ ืœื”ืคืขืœื” ืชื•ืš 7 ื™ืžื™ื

#!/bin/bash
# testing variables
grade=5
person="Adam"
echo "$person is a good boy, he is in grade $grade"

ื”ื ื” ืžื” ืฉืงื•ืจื” ืœืื—ืจ ื”ืคืขืœืช ืกืงืจื™ืคื˜ ื›ื–ื”.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื
ืžืฉืชื ื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช ื‘ืกืงืจื™ืคื˜

ื”ื—ืœืคืช ืคืงื•ื“ื”

ืื—ืช ื”ืชื›ื•ื ื•ืช ื”ืฉื™ืžื•ืฉื™ื•ืช ื‘ื™ื•ืชืจ ืฉืœ ืกืงืจื™ืคื˜ื™ื ืฉืœ bash ื”ื™ื ื”ื™ื›ื•ืœืช ืœื—ืœืฅ ืžื™ื“ืข ืžื”ืคืœื˜ ืฉืœ ื”ืคืงื•ื“ื•ืช ื•ืœื”ืงืฆื•ืช ืื•ืชื• ืœืžืฉืชื ื™ื, ืžื” ืฉืžืืคืฉืจ ืœืš ืœื”ืฉืชืžืฉ ื‘ืžื™ื“ืข ื–ื” ื‘ื›ืœ ืžืงื•ื ื‘ืงื•ื‘ืฅ ื”ืกืงืจื™ืคื˜.

ื ื™ืชืŸ ืœืขืฉื•ืช ื–ืืช ื‘ืฉืชื™ ื“ืจื›ื™ื.

  • ืขื ืชื• "`"
  • ื‘ืขื–ืจืช ื‘ื ื™ื™ื” $()

ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ื’ื™ืฉื” ื”ืจืืฉื•ื ื”, ื”ื™ื–ื”ืจ ืœื ืœื”ืฉืชืžืฉ ื‘ืžืจื›ืื” ื‘ื•ื“ื“ืช ื‘ืžืงื•ื ื‘-backtick. ื”ืคืงื•ื“ื” ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ืžื•ืงืคืช ื‘ืฉื ื™ ืื™ื™ืงื•ื ื™ื ื›ืืœื”:

mydir=`pwd`

ื‘ื’ื™ืฉื” ื”ืฉื ื™ื™ื”, ืื•ืชื• ื”ื“ื‘ืจ ื›ืชื•ื‘ ื›ืš:

mydir=$(pwd)

ื•ื”ืชืกืจื™ื˜, ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ, ืขืฉื•ื™ ืœื”ื™ืจืื•ืช ื›ืš:

#!/bin/bash
mydir=$(pwd)
echo $mydir

ื‘ืžื”ืœืš ืคืขื•ืœืชื•, ื”ืคืœื˜ ืฉืœ ื”ืคืงื•ื“ื” pwdื™ื™ืฉืžืจ ื‘ืžืฉืชื ื” mydir, ืืฉืจ ืชื•ื›ื ื•, ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื” echo, ื™ืขื‘ื•ืจ ืœืงื•ื ืกื•ืœื”.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื
ืกืงืจื™ืคื˜ ืฉืฉื•ืžืจ ืืช ืชื•ืฆืื•ืช ื”ืคืงื•ื“ื” ื‘ืžืฉืชื ื”

ืคืขื•ืœื•ืช ืžืชืžื˜ื™ื•ืช

ื›ื“ื™ ืœื‘ืฆืข ืคืขื•ืœื•ืช ืžืชืžื˜ื™ื•ืช ื‘ืงื•ื‘ืฅ ืกืงืจื™ืคื˜, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื‘ื ื™ื™ื” ืฉืœ ื”ื˜ื•ืคืก $((a+b)):

#!/bin/bash
var1=$(( 5 + 5 ))
echo $var1
var2=$(( $var1 * 2 ))
echo $var2

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื
ืคืขื•ืœื•ืช ืžืชืžื˜ื™ืงื” ื‘ืชืกืจื™ื˜

ืื-ืื– ืžื‘ื ื” ื‘ืงืจื”

ื‘ืชืจื—ื™ืฉื™ื ืžืกื•ื™ืžื™ื, ื–ื” ื ื“ืจืฉ ืœืฉืœื•ื˜ ื‘ื–ืจื™ืžืช ื‘ื™ืฆื•ืข ื”ืคืงื•ื“ื”. ืœื“ื•ื’ืžื”, ืื ืขืจืš ืžืกื•ื™ื ื’ื“ื•ืœ ืžื—ืžืฉ, ื™ืฉ ืœื‘ืฆืข ืคืขื•ืœื” ืื—ืช, ืื—ืจืช ืื—ืจืช. ื–ื” ื™ืฉื™ื ื‘ื”ืจื‘ื” ืžืื•ื“ ืžืฆื‘ื™ื, ื•ื›ืืŸ ืžื‘ื ื” ื”ื‘ืงืจื” ื™ืขื–ื•ืจ ืœื ื• if-then. ื‘ืฆื•ืจื” ื”ืคืฉื•ื˜ื” ื‘ื™ื•ืชืจ, ื–ื” ื ืจืื” ื›ืš:

if ะบะพะผะฐะฝะดะฐ
then
ะบะพะผะฐะฝะดั‹
fi

ื•ื”ื ื” ื“ื•ื’ืžื” ืขื•ื‘ื“ืช:

#!/bin/bash
if pwd
then
echo "It works"
fi

ื‘ืžืงืจื” ื–ื”, ืื ื‘ื™ืฆื•ืข ื”ืคืงื•ื“ื” pwdื”ื•ืฉืœื ื‘ื”ืฆืœื—ื”, ื”ื˜ืงืกื˜ "ื–ื” ืขื•ื‘ื“" ื™ื•ืฆื’ ื‘ืžืกื•ืฃ.

ื‘ื•ืื• ื ืฉืชืžืฉ ื‘ื™ื“ืข ืฉื™ืฉ ืœื ื• ื•ื ื›ืชื•ื‘ ืชืจื—ื™ืฉ ืžื•ืจื›ื‘ ื™ื•ืชืจ. ื ื ื™ื— ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืžืฆื•ื ืžืฉืชืžืฉ ื‘ /etc/passwd, ื•ืื ื”ื•ื ื ืžืฆื, ื“ื•ื•ื— ืฉื”ื•ื ืงื™ื™ื.

#!/bin/bash
user=likegeeks
if grep $user /etc/passwd
then
echo "The user $user Exists"
fi

ื–ื” ืžื” ืฉืงื•ืจื” ืœืื—ืจ ื”ืคืขืœืช ื”ืกืงืจื™ืคื˜ ื”ื–ื”.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื
ื—ื™ืคื•ืฉ ืžืฉืชืžืฉื™ื

ื›ืืŸ ื”ืฉืชืžืฉื ื• ื‘ืคืงื•ื“ื” grepื›ื“ื™ ืœื—ืคืฉ ืžืฉืชืžืฉ ื‘ืงื•ื‘ืฅ /etc/passwd. ืื ื”ืฆื•ื•ืช grepืœื ืžื•ื›ืจ ืœืš, ื ื™ืชืŸ ืœืžืฆื•ื ืืช ื”ืชื™ืื•ืจ ืฉืœื• ื›ืืŸ.

ื‘ื“ื•ื’ืžื” ื–ื•, ืื ื”ืžืฉืชืžืฉ ื ืžืฆื, ื”ืกืงืจื™ืคื˜ ื™ืฆื™ื’ ื”ื•ื“ืขื” ืžืชืื™ืžื”. ืžื” ืื ืœื ื ื™ืชืŸ ืœืžืฆื•ื ืืช ื”ืžืฉืชืžืฉ? ื‘ืžืงืจื” ื–ื”, ื”ืชืกืจื™ื˜ ืคืฉื•ื˜ ื™ืฉืœื™ื ืืช ื”ื‘ื™ืฆื•ืข ืžื‘ืœื™ ืœื•ืžืจ ืœื ื• ื“ื‘ืจ. ื”ื™ื™ืชื™ ืจื•ืฆื” ืฉื”ื•ื ื™ืกืคืจ ืœื ื• ื’ื ืขืœ ื–ื”, ืื– ื‘ื•ืื• ื ืฉืคืจ ืืช ื”ืงื•ื“.

ืžื‘ื ื” ื”ืฉืœื™ื˜ื” ืื-ืื–-ืื—ืจ

ืขืœ ืžื ืช ืฉื”ืชื•ื›ื ื™ืช ืชื•ื›ืœ ืœื“ื•ื•ื— ื”ืŸ ืขืœ ืชื•ืฆืื•ืช ืฉืœ ื—ื™ืคื•ืฉ ืžื•ืฆืœื— ื•ื”ืŸ ืขืœ ื›ื™ืฉืœื•ืŸ, ืื ื• ืžืฉืชืžืฉื™ื ื‘ื‘ื ื™ื™ื” if-then-else. ื›ืš ื”ื•ื ืžื•ื’ื“ืจ:

if ะบะพะผะฐะฝะดะฐ
then
ะบะพะผะฐะฝะดั‹
else
ะบะพะผะฐะฝะดั‹
fi

ืื ื”ืคืงื•ื“ื” ื”ืจืืฉื•ื ื” ืžื—ื–ื™ืจื” ืืคืก, ื›ืœื•ืžืจ ื”ื™ื ื‘ื•ืฆืขื” ื‘ื”ืฆืœื—ื”, ื”ืชื ืื™ ื™ื”ื™ื” ื ื›ื•ืŸ ื•ื”ื‘ื™ืฆื•ืข ืœื ื™ืขื‘ื•ืจ ืœืื•ืจืš ื”ืขื ืฃ else. ืื—ืจืช, ืื ืžืฉื”ื• ืื—ืจ ืžืืฉืจ ืืคืก ืžื•ื—ื–ืจ, ื›ืœื•ืžืจ ื›ืฉืœ, ืื• ืชื•ืฆืื” ืฉืงืจื™ืช, ื”ืคืงื•ื“ื•ืช ืฉืื—ืจื™ else.

ื‘ื•ื ื ื›ืชื•ื‘ ืืช ื”ืชืกืจื™ื˜ ื”ื‘ื:

#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
else
echo "The user $user doesnโ€™t exist"
fi

ื”ื•ืฆืืชื• ืœื”ื•ืจื’ ื™ืจื“ื” ืžื”ืฉื•ืจื” else.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื
ื”ืคืขืœืช ืกืงืจื™ืคื˜ ืขื ืžื‘ื ื” ืื-ืื–-ืื—ืจ

ื•ื‘ื›ืŸ, ื‘ื•ืื• ื ืžืฉื™ืš ื•ื ืฉืืœ ืืช ืขืฆืžื ื• ืœื’ื‘ื™ ืชื ืื™ื ืงืฉื™ื ื™ื•ืชืจ. ืžื” ืื ืืชื” ืฆืจื™ืš ืœื‘ื“ื•ืง ืœื ืชื ืื™ ืื—ื“, ืืœื ื›ืžื”? ืœื“ื•ื’ืžื”, ืื ื ืžืฆื ื”ืžืฉืชืžืฉ ื”ื ื“ืจืฉ, ื™ืฉ ืœื”ืฆื™ื’ ื”ื•ื“ืขื” ืื—ืช, ืื ืžืชืงื™ื™ื ืชื ืื™ ืื—ืจ, ื™ืฉ ืœื”ืฆื™ื’ ื”ื•ื“ืขื” ืื—ืจืช ื•ื›ืŸ ื”ืœืื”. ื‘ืžืฆื‘ ื›ื–ื”, ืชื ืื™ื ืžืงื•ื ื ื™ื ื™ืขื–ืจื• ืœื ื•. ื–ื” ื ืจืื” ื›ืžื• ื–ื”:

if ะบะพะผะฐะฝะดะฐ1
then
ะบะพะผะฐะฝะดั‹
elif ะบะพะผะฐะฝะดะฐ2
then
ะบะพะผะฐะฝะดั‹
fi

ืื ื”ืคืงื•ื“ื” ื”ืจืืฉื•ื ื” ืžื—ื–ื™ืจื” ืืคืก, ืžื” ืฉืžืขื™ื“ ืขืœ ื‘ื™ืฆื•ืข ืžื•ืฆืœื—, ื”ืคืงื•ื“ื•ืช ื‘ื‘ืœื•ืง ื”ืจืืฉื•ืŸ ื™ื‘ื•ืฆืขื• then, ืื—ืจืช, ืื ื”ืชื ืื™ ื”ืจืืฉื•ืŸ ื”ื•ื ืฉืงืจ, ื•ืื ื”ืคืงื•ื“ื” ื”ืฉื ื™ื™ื” ืžื—ื–ื™ืจื” ืืคืก, ื’ื•ืฉ ื”ืงื•ื“ ื”ืฉื ื™ ื™ื‘ื•ืฆืข.

#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
elif ls /home
then
echo "The user doesnโ€™t exist but anyway there is a directory under /home"
fi

ื‘ืกืงืจื™ืคื˜ ื›ื–ื” ื ื™ืชืŸ, ืœืžืฉืœ, ืœื™ืฆื•ืจ ืžืฉืชืžืฉ ื—ื“ืฉ ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื” useradd, ืื ื”ื—ื™ืคื•ืฉ ืœื ื”ื—ื–ื™ืจ ืชื•ืฆืื•ืช, ืื• ืขืฉื” ืžืฉื”ื• ืฉื™ืžื•ืฉื™ ืื—ืจ.

ื”ืฉื•ื•ืืช ืžืกืคืจื™ื

ื‘ืกืงืจื™ืคื˜ื™ื, ืืชื” ื™ื›ื•ืœ ืœื”ืฉื•ื•ืช ืขืจื›ื™ื ืžืกืคืจื™ื™ื. ืœื”ืœืŸ ืจืฉื™ืžื” ืฉืœ ืคืงื•ื“ื•ืช ืจืœื•ื•ื ื˜ื™ื•ืช.

n1 -eq n2ืžื—ื–ื™ืจ ืืžืช ืื n1 ืฉื•ื•ื” n2.
n1 -ge n2 ืžื—ื–ื™ืจ ืืžืช ืื n1ื™ื•ืชืจ ืื• ืฉื•ื•ื” n2.
n1 -gt n2ืžื—ื–ื™ืจ ืืžืช ืื n1 ื™ื•ืชืจ ืž n2.
n1 -le n2ืžื—ื–ื™ืจ ืืžืช ืื n1ืคื—ื•ืช ืื• ืฉื•ื•ื” n2.
n1 -lt n2ืžื—ื–ื™ืจื” ืืžืช ืื n1 ืงื˜ืŸ ืž n2.
n1 -ne n2ืžื—ื–ื™ืจ ืืžืช ืื n1ืœื ืฉื•ื•ื” n2.

ื›ื“ื•ื’ืžื”, ื‘ื•ืื• ื ื ืกื” ืืช ืื—ื“ ืžืื•ืคืจื˜ื•ืจื™ ื”ื”ืฉื•ื•ืื”. ืฉื™ืžื• ืœื‘ ืฉื”ื‘ื™ื˜ื•ื™ ืžื•ืงืฃ ื‘ืกื•ื’ืจื™ื™ื ืžืจื•ื‘ืขื™ื.

#!/bin/bash
val1=6
if [ $val1 -gt 5 ]
then
echo "The test value $val1 is greater than 5"
else
echo "The test value $val1 is not greater than 5"
fi

ื”ื ื” ืžื” ืฉื”ืคืงื•ื“ื” ื”ื–ื• ืชืคื™ืง.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื
ื”ืฉื•ื•ืืช ืžืกืคืจื™ื ื‘ืชืกืจื™ื˜ื™ื

ืขืจืš ืžืฉืชื ื” val1ื™ื•ืชืจ ืž-5, ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ื”ืกื ื™ืฃ ืžื‘ื•ืฆืข thenืžืคืขื™ืœ ื”ื”ืฉื•ื•ืื” ื•ื”ื”ื•ื“ืขื” ื”ืžืชืื™ืžื” ืžื•ืฆื’ืช ื‘ืžืกื•ืฃ.

ื”ืฉื•ื•ืืช ืžื—ืจื•ื–ื•ืช

ืกืงืจื™ืคื˜ื™ื ื™ื›ื•ืœื™ื ื’ื ืœื”ืฉื•ื•ืช ืขืจื›ื™ ืžื—ืจื•ื–ืช. ืื•ืคืจื˜ื•ืจื™ื ืœื”ืฉื•ื•ืื” ื ืจืื™ื ื“ื™ ืคืฉื•ื˜ื™ื, ืื‘ืœ ืœืื•ืคืจื˜ื•ืจื™ื ืœื”ืฉื•ื•ืืช ืžื—ืจื•ื–ื•ืช ื™ืฉ ืžื•ื–ืจื•ื™ื•ืช ืžืกื•ื™ืžื•ืช, ื‘ื”ืŸ ื ื™ื’ืข ื‘ื”ืžืฉืš. ื”ื ื” ืจืฉื™ืžื” ืฉืœ ืžืคืขื™ืœื™ื.

str1 = str2 ื‘ื•ื“ืง ืžื—ืจื•ื–ื•ืช ืœืฉื•ื•ื™ื•ืŸ, ืžื—ื–ื™ืจ ืืžืช ืื ื”ืžื—ืจื•ื–ื•ืช ื–ื”ื•ืช.
str1 != str2ืžื—ื–ื™ืจื” ืืžืช ืื ื”ืžื—ืจื•ื–ื•ืช ืื™ื ืŸ ื–ื”ื•ืช.
str1 < str2ืžื—ื–ื™ืจ ืืžืช ืื str1ืคื—ื•ืช ืž str2.
str1 > str2 ืžื—ื–ื™ืจ ืืžืช ืื str1ื™ื•ืชืจ ืž str2.
-n str1 ืžื—ื–ื™ืจื” ืืžืช ืื ืื•ืจืš str1ืžืขืœ ืืคืก.
-z str1ืžื—ื–ื™ืจื” ืืžืช ืื ืื•ืจืš str1ืฉื•ื•ื” ืœืืคืก.

ื”ื ื” ื“ื•ื’ืžื” ืœื”ืฉื•ื•ืืช ืžื—ืจื•ื–ื•ืช ื‘ืกืงืจื™ืคื˜:

#!/bin/bash
user ="likegeeks"
if [$user = $USER]
then
echo "The user $user  is the current logged in user"
fi

ื›ืชื•ืฆืื” ืžื‘ื™ืฆื•ืข ื”ืชืกืจื™ื˜, ืื ื• ืžืงื‘ืœื™ื ืืช ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื
ื”ืฉื•ื•ืืช ืžื—ืจื•ื–ื•ืช ื‘ืกืงืจื™ืคื˜ื™ื

ื”ื ื” ืชื›ื•ื ื” ืื—ืช ืฉืœ ื”ืฉื•ื•ืืช ืžื—ืจื•ื–ื•ืช ืฉื›ื“ืื™ ืœื”ื–ื›ื™ืจ. ื›ืœื•ืžืจ, ื”ืื•ืคืจื˜ื•ืจื™ื ">" ื•-"<" ื—ื™ื™ื‘ื™ื ืœื”ื™ื•ืช ื‘ื•ืจื—ื™ื ืขื ืงื• ื ื˜ื•ื™ ืื—ื•ืจื™, ืื—ืจืช ื”ืกืงืจื™ืคื˜ ืœื ื™ืขื‘ื•ื“ ื›ืจืื•ื™, ืœืžืจื•ืช ืฉืœื ื™ื•ืคื™ืขื• ื”ื•ื“ืขื•ืช ืฉื’ื™ืื”. ื”ืกืงืจื™ืคื˜ ืžืคืจืฉ ืืช ื”ืกื™ืžืŸ ">" ื›ืคืงื•ื“ื” ืœื”ืคื ื™ื™ืช ืคืœื˜.

ื›ืš ื ืจืื™ืช ืขื‘ื•ื“ื” ืขื ืื•ืคืจื˜ื•ืจื™ื ืืœื” ื‘ืงื•ื“:

#!/bin/bash
val1=text
val2="another text"
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

ืœื”ืœืŸ ืชื•ืฆืื•ืช ื”ืชืกืจื™ื˜.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื
ื”ืฉื•ื•ืืช ืžื™ืชืจื™ื, ืื–ื”ืจื” ื ื–ืจืง

ืฉื™ืžื• ืœื‘ ืฉื”ืกืงืจื™ืคื˜, ืœืžืจื•ืช ืฉื”ื•ื ืžื•ืคืขืœ, ื ื•ืชืŸ ืื–ื”ืจื”:

./myscript: line 5: [: too many arguments

ื›ื“ื™ ืœื”ื™ืคื˜ืจ ืžื”ืื–ื”ืจื” ื”ื–ื•, ืื ื• ืžืกื›ืžื™ื $val2 ื‘ืžื™ืจื›ืื•ืช ื›ืคื•ืœื•ืช:

#!/bin/bash
val1=text
val2="another text"
if [ $val1 > "$val2" ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

ืขื›ืฉื™ื• ื”ื›ืœ ืขื•ื‘ื“ ื›ืžื• ืฉืฆืจื™ืš.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื
ื”ืฉื•ื•ืืช ืžื—ืจื•ื–ื•ืช

ืชื›ื•ื ื” ื ื•ืกืคืช ืฉืœ ื”ืื•ืคืจื˜ื•ืจื™ื ">" ื•-"<" ื”ื™ื ื”ืื•ืคืŸ ืฉื‘ื• ื”ื ืคื•ืขืœื™ื ืขื ืื•ืชื™ื•ืช ืจื™ืฉื™ื•ืช ื•ืงื˜ื ื•ืช. ืขืœ ืžื ืช ืœื”ื‘ื™ืŸ ืชื›ื•ื ื” ื–ื•, ื‘ื•ืื• ื ื›ื™ืŸ ืงื•ื‘ืฅ ื˜ืงืกื˜ ืขื ื”ืชื•ื›ืŸ ื”ื‘ื:

Likegeeks
likegeeks

ืฉืžื•ืจ ืื•ืชื• ืขื ืฉื myfileื•ืœืื—ืจ ืžื›ืŸ ื”ืคืขืœ ืืช ื”ืคืงื•ื“ื” ื”ื‘ืื” ื‘ื˜ืจืžื™ื ืœ:

sort myfile

ื–ื” ื™ืžื™ื™ืŸ ืืช ื”ืฉื•ืจื•ืช ืžื”ืงื•ื‘ืฅ ื›ืš:

likegeeks
Likegeeks

ืงื‘ื•ืฆื” sort, ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืžืžื™ื™ืŸ ืžื—ืจื•ื–ื•ืช ื‘ืกื“ืจ ืขื•ืœื”, ื›ืœื•ืžืจ ื”ืื•ืช ื”ืงื˜ื ื” ื‘ื“ื•ื’ืžื” ืฉืœื ื• ืงื˜ื ื” ืžื”ืื•ืช ื”ื’ื“ื•ืœื”. ืขื›ืฉื™ื• ื‘ื•ืื• ื ื›ื™ืŸ ืกืงืจื™ืคื˜ ืฉื™ืฉื•ื•ื” ืืช ืื•ืชืŸ ืžื—ืจื•ื–ื•ืช:

#!/bin/bash
val1=Likegeeks
val2=likegeeks
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

ืื ืžืคืขื™ืœื™ื ืื•ืชื•, ืžืชื‘ืจืจ ืฉื”ื”ืคืš ื”ื•ื ื”ื ื›ื•ืŸ - ื”ืื•ืช ื”ืงื˜ื ื” ื›ืขืช ื’ื“ื•ืœื” ืžื”ืื•ืช ื”ื’ื“ื•ืœื”.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื
ื”ืฉื•ื•ืืช ืคืงื•ื“ื•ืช ืžื™ื•ืŸ ื•ื”ืฉื•ื•ืืช ืžื—ืจื•ื–ื•ืช ื‘ืงื•ื‘ืฅ ืกืงืจื™ืคื˜

ื‘ืคืงื•ื“ื•ืช ื”ืฉื•ื•ืื”, ืื•ืชื™ื•ืช ืจื™ืฉื™ื•ืช ืงื˜ื ื•ืช ื™ื•ืชืจ ืžืื•ืชื™ื•ืช ืงื˜ื ื•ืช. ื”ืฉื•ื•ืืช ืžื—ืจื•ื–ื•ืช ื›ืืŸ ื ืขืฉื™ืช ืขืœ ื™ื“ื™ ื”ืฉื•ื•ืืช ืงื•ื“ื™ ื”ืชื•ื•ื™ื ASCII, ืกื“ืจ ื”ืžื™ื•ืŸ ืชืœื•ื™ ืœืคื™ื›ืš ื‘ืงื•ื“ื™ ื”ืชื•ื•ื™ื.

ืงื‘ื•ืฆื” sort, ื‘ืชื•ืจื•, ืžืฉืชืžืฉ ื‘ืกื“ืจ ื”ืžื™ื•ืŸ ืฉืฆื•ื™ืŸ ื‘ื”ื’ื“ืจื•ืช ืฉืคืช ื”ืžืขืจื›ืช.

ื‘ื“ื™ืงื•ืช ืงื‘ืฆื™ื

ืื•ืœื™ ื”ืคืงื•ื“ื•ืช ืœืžื˜ื” ืžืฉืžืฉื•ืช ืœืจื•ื‘ ื‘ืชืกืจื™ื˜ื™ bash. ื”ื ืžืืคืฉืจื™ื ืœืš ืœื‘ื“ื•ืง ืชื ืื™ื ืฉื•ื ื™ื ืœื’ื‘ื™ ืงื‘ืฆื™ื. ืœื”ืœืŸ ืจืฉื™ืžื” ืฉืœ ื”ืคืงื•ื“ื•ืช ื”ืœืœื•.

-d fileื‘ื•ื“ืง ืื ืงื™ื™ื ืงื•ื‘ืฅ ื•ืื ื”ื•ื ืกืคืจื™ื”.
-e fileื‘ื•ื“ืง ืื ืงื™ื™ื ืงื•ื‘ืฅ.
-f file ื‘ื•ื“ืง ืื ืงื™ื™ื ืงื•ื‘ืฅ ื•ืื ื–ื” ืงื•ื‘ืฅ.
-r fileื‘ื•ื“ืง ืื ื”ืงื•ื‘ืฅ ืงื™ื™ื ื•ื ื™ืชืŸ ืœืงืจื™ืื”.
-s file ะŸื‘ื•ื“ืง ืื ื”ืงื•ื‘ืฅ ืงื™ื™ื ื•ืื™ื ื• ืจื™ืง.
-w fileื‘ื•ื“ืง ืื ื”ืงื•ื‘ืฅ ืงื™ื™ื ื•ื ื™ืชืŸ ืœื›ืชื™ื‘ื”.
-x fileื‘ื•ื“ืง ืื ืงื™ื™ื ืงื•ื‘ืฅ ื•ื”ื•ื ื‘ืจ ื”ืคืขืœื”.
file1 -nt file2 ื‘ื•ื“ืง ืื ื”ื•ื ื—ื“ืฉ ื™ื•ืชืจ file1ืžืืฉืจ file2.
file1 -ot file2ื‘ื•ื“ืง ืื ื™ืฉืŸ ื™ื•ืชืจ file1ืžืืฉืจ file2.
-O file ื‘ื•ื“ืง ืื ื”ืงื•ื‘ืฅ ืงื™ื™ื ื•ื”ื•ื ื‘ื‘ืขืœื•ืช ื”ืžืฉืชืžืฉ ื”ื ื•ื›ื—ื™.
-G fileื‘ื•ื“ืง ืื ื”ืงื•ื‘ืฅ ืงื™ื™ื ื•ืื ืžื–ื”ื” ื”ืงื‘ื•ืฆื” ืฉืœื• ืชื•ืื ืืช ืžื–ื”ื” ื”ืงื‘ื•ืฆื” ืฉืœ ื”ืžืฉืชืžืฉ ื”ื ื•ื›ื—ื™.

ืงืœ ืœื–ื›ื•ืจ ืคืงื•ื“ื•ืช ืืœื•, ื›ืžื• ื’ื ืจื‘ื•ืช ืื—ืจื•ืช ืฉื ื“ื•ื ื• ื”ื™ื•ื. ืฉืžื•ืชื™ื”ื, ื‘ื”ื™ื•ืชื ืงื™ืฆื•ืจื™ื ืฉืœ ืžื™ืœื™ื ืฉื•ื ื•ืช, ืžืฆื‘ื™ืขื™ื ื™ืฉื™ืจื•ืช ืขืœ ื”ื‘ื“ื™ืงื•ืช ืฉื”ื ืžื‘ืฆืขื™ื.

ื‘ื•ืื• ื ื ืกื” ืืช ืื—ืช ื”ืคืงื•ื“ื•ืช ื‘ืคื•ืขืœ:

#!/bin/bash
mydir=/home/likegeeks
if [ -d $mydir ]
then
echo "The $mydir directory exists"
cd $ mydir
ls
else
echo "The $mydir directory does not exist"
fi

ืกืงืจื™ืคื˜ ื–ื”, ืขื‘ื•ืจ ืกืคืจื™ื™ื” ืงื™ื™ืžืช, ื™ืฆื™ื’ ืืช ืชื•ื›ื ื•.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื
ืคื™ืจื•ื˜ ื”ืชื•ื›ืŸ ืฉืœ ืกืคืจื™ื™ื”

ืื ื• ืžืืžื™ื ื™ื ืฉื ื™ืชืŸ ืœื”ืชื ืกื•ืช ื‘ืฉืืจ ื”ืคืงื•ื“ื•ืช ื‘ืขืฆืžื›ื, ื›ื•ืœืŸ ื—ืœื•ืช ืขืœ ืคื™ ืื•ืชื• ืขื™ืงืจื•ืŸ.

ืชื•ืฆืื•ืช ืฉืœ

ื”ื™ื•ื ื“ื™ื‘ืจื ื• ืขืœ ืื™ืš ืœื”ืชื—ื™ืœ ืœื›ืชื•ื‘ ืกืงืจื™ืคื˜ื™ื ืฉืœ bash ื•ืกืงืจื ื• ื›ืžื” ื“ื‘ืจื™ื ื‘ืกื™ืกื™ื™ื. ืœืžืขืฉื”, ื”ื ื•ืฉื ืฉืœ ืชื›ื ื•ืช bash ื”ื•ื ืขืฆื•ื. ืžืืžืจ ื–ื” ื”ื•ื ืชืจื’ื•ื ืฉืœ ื”ื—ืœืง ื”ืจืืฉื•ืŸ ื‘ืกื“ืจื” ื’ื“ื•ืœื” ืฉืœ 11 ื—ื•ืžืจื™ื. ืื ืืชื” ืจื•ืฆื” ืœื”ืžืฉื™ืš ื›ื‘ืจ ืขื›ืฉื™ื•, ื”ื ื” ืจืฉื™ืžื” ืฉืœ ื”ืžืงื•ืจื•ืช ืฉืœ ื”ื—ื•ืžืจื™ื ื”ืืœื”. ืžื˜ืขืžื™ ื ื•ื—ื•ืช, ื–ื” ืฉื”ืชืจื’ื•ื ืฉืœื• ืงืจืืช ื–ื” ืขืชื” ื›ืœื•ืœ ื›ืืŸ.

  1. Bash Script ืฆืขื“ ืื—ืจ ืฆืขื“ - ื›ืืŸ ืื ื—ื ื• ืžื“ื‘ืจื™ื ืขืœ ืื™ืš ืœื”ืชื—ื™ืœ ืœื™ืฆื•ืจ ืกืงืจื™ืคื˜ื™ื ืฉืœ bash, ื”ืฉื™ืžื•ืฉ ื‘ืžืฉืชื ื™ื ื ื—ืฉื‘, ืžืชื•ืืจื™ื ืงื•ื ืกื˜ืจื•ืงืฆื™ื•ืช ืžื•ืชื ื•ืช, ื—ื™ืฉื•ื‘ื™ื, ื”ืฉื•ื•ืื•ืช ืฉืœ ืžืกืคืจื™ื, ืžื—ืจื•ื–ื•ืช, ื’ื™ืœื•ื™ ืžื™ื“ืข ืขืœ ืงื‘ืฆื™ื.
  2. Bash Scripting ื—ืœืง 2, Bash ื”ืžื“ื”ื™ื - ื›ืืŸ ืžืชื’ืœื•ืช ืชื›ื•ื ื•ืช ื”ืขื‘ื•ื“ื” ืขื ืœื•ืœืื•ืช for ื•-while.
  3. Bash Scripting ื—ืœืง 3, ืคืจืžื˜ืจื™ื ื•ืืคืฉืจื•ื™ื•ืช - ื—ื•ืžืจ ื–ื” ืžื•ืงื“ืฉ ืœืคืจืžื˜ืจื™ื ื•ืžืคืชื—ื•ืช ืฉืœ ืฉื•ืจืช ื”ืคืงื•ื“ื” ืฉื ื™ืชืŸ ืœื”ืขื‘ื™ืจ ืœืกืงืจื™ืคื˜ื™ื, ืขื‘ื•ื“ื” ืขื ื ืชื•ื ื™ื ืฉื”ืžืฉืชืžืฉ ืžื–ื™ืŸ ื•ืฉื ื™ืชืŸ ืœืงืจื•ื ืžืงื‘ืฆื™ื.
  4. Bash Scripting ื—ืœืง 4, ืงืœื˜ ื•ืคืœื˜ - ื›ืืŸ ืื ื—ื ื• ืžื“ื‘ืจื™ื ืขืœ ืžืชืืจื™ ืงื‘ืฆื™ื ื•ืขื‘ื•ื“ื” ืื™ืชื, ืขืœ ืงืœื˜, ืคืœื˜, ืฉื’ื™ืื•ืช, ื–ืจืžื™ ื”ืคื ื™ื™ืช ืคืœื˜.
  5. Bash Scripting ื—ืœืง 5, Sighals & Jobs - ื”ื—ื•ืžืจ ื”ื–ื” ืžื•ืงื“ืฉ ืœืื•ืชื•ืช ืœื™ื ื•ืงืก, ืขื™ื‘ื•ื“ื ื‘ืกืงืจื™ืคื˜ื™ื, ื”ืฉืงืช ืกืงืจื™ืคื˜ ืžืชื•ื›ื ื ืช.
  6. Bash Scripting ื—ืœืง 6, ืคื•ื ืงืฆื™ื•ืช - ื›ืืŸ ืชื•ื›ืœื• ืœืœืžื•ื“ ืขืœ ื™ืฆื™ืจื” ื•ืฉื™ืžื•ืฉ ื‘ืคื•ื ืงืฆื™ื•ืช ื‘ืกืงืจื™ืคื˜ื™ื, ืขืœ ืคื™ืชื•ื— ืกืคืจื™ื•ืช.
  7. Bash Scripting ื—ืœืง 7, ื‘ืืžืฆืขื•ืช sed - ืžืืžืจ ื–ื” ืขื•ืกืง ื‘ืขื‘ื•ื“ื” ืขื ืขื•ืจืš ื”ื˜ืงืกื˜ ืฉืœ sed stream.
  8. Bash Scripting ื—ืœืง 8, ื‘ืืžืฆืขื•ืช awk - ื—ื•ืžืจ ื–ื” ืžื•ืงื“ืฉ ืœืชื›ื ื•ืช ื‘ืฉืคืช ืขื™ื‘ื•ื“ ื”ื ืชื•ื ื™ื awk.
  9. Bash Scripting ื—ืœืง 9, ื‘ื™ื˜ื•ื™ื™ื ืจื’ื•ืœืจื™ื™ื - ื›ืืŸ ืชื•ื›ืœื• ืœืงืจื•ื ืขืœ ื”ืฉื™ืžื•ืฉ ื‘ื‘ื™ื˜ื•ื™ื™ื ืจื’ื•ืœืจื™ื™ื ื‘ืชืกืจื™ื˜ื™ bash.
  10. Bash Scripting ื—ืœืง 10, ื“ื•ื’ืžืื•ืช ืžืขืฉื™ื•ืช - ืœืคื ื™ื›ื ืฉื™ื˜ื•ืช ืœืขื‘ื•ื“ื” ืขื ื”ื•ื“ืขื•ืช ืฉื ื™ืชืŸ ืœืฉืœื•ื— ืœืžืฉืชืžืฉื™ื ื•ื›ืŸ ืฉื™ื˜ื” ืœื ื™ื˜ื•ืจ ื”ื“ื™ืกืง.
  11. Bash Scripting ื—ืœืง 11, Expect Command - ื—ื•ืžืจ ื–ื” ืžื•ืงื“ืฉ ืœื›ืœื™ Expect, ืฉื‘ืืžืฆืขื•ืชื• ืืชื” ื™ื›ื•ืœ ืœื”ืคื•ืš ืื™ื ื˜ืจืืงืฆื™ื” ืœืื•ื˜ื•ืžื˜ื™ืช ืขื ื›ืœื™ ืขื–ืจ ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ื™ื. ื‘ืคืจื˜, ืžื“ื•ื‘ืจ ื‘ืชืกืจื™ื˜ื™ื ืžืฆื•ืคื” ื•ื›ื™ืฆื“ ื”ื ืžืงื™ื™ืžื™ื ืื™ื ื˜ืจืืงืฆื™ื” ืขื ืชืกืจื™ื˜ื™ bash ื•ืชื•ื›ื ื™ื•ืช ืื—ืจื•ืช.

ืื ื• ื—ื•ืฉื‘ื™ื ืฉืื—ื“ ื”ื“ื‘ืจื™ื ื”ื ื”ื“ืจื™ื ื‘ืกื“ืจืช ื”ืžืืžืจื™ื ื”ื–ื• ื”ื•ื ืฉื”ื™ื ืžืชื—ื™ืœื” ืžื”ื‘ืกื™ืกื™ ื‘ื™ื•ืชืจ, ืžืชืื™ื ืœืžืฉืชืžืฉื™ื ื‘ื›ืœ ืจืžื”, ืžื•ื‘ื™ืœ ื‘ื”ื“ืจื’ื” ืœื ื•ืฉืื™ื ืจืฆื™ื ื™ื™ื ืœืžื“ื™, ื•ื ื•ืชืŸ ืœื›ื•ืœื ื”ื–ื“ืžื ื•ืช ืœื”ืชืงื“ื ื‘ืกืงืจื™ืคื˜ื™ื ืฉืœ ืฉื•ืจืช ื”ืคืงื•ื“ื” ืฉืœ ืœื™ื ื•ืงืก.

ืงื•ืจืื™ื ื™ืงืจื™ื! ืื ื—ื ื• ืžื‘ืงืฉื™ื ืžื’ื•ืจื•ืื™ื ืฉืœ ืชื›ื ื•ืช ื‘ืฉืฉ ืœื“ื‘ืจ ืขืœ ืื™ืš ื”ื ื”ื’ื™ืขื• ืœืคืกื’ื•ืช ื”ืฉืœื™ื˜ื”, ืœืฉืชืฃ ืกื•ื“ื•ืช, ื•ืื ื—ื ื• ืžื—ื›ื™ื ืœื”ืชืจืฉืžื•ืช ืžืืœื” ืฉื–ื” ืขืชื” ื›ืชื‘ื• ืืช ื”ืชืกืจื™ื˜ ื”ืจืืฉื•ืŸ ืฉืœื”ื.

ืชืกืจื™ื˜ื™ Bash: ืžืชื—ื™ืœื™ื

ืจืง ืžืฉืชืžืฉื™ื ืจืฉื•ืžื™ื ื™ื›ื•ืœื™ื ืœื”ืฉืชืชืฃ ื‘ืกืงืจ. ืœื”ืชื—ื‘ืจื‘ื‘ืงืฉื”.

ืœืชืจื’ื ืืช ืฉืืจ ืกื“ืจืช ื”ืžืืžืจื™ื?

  • ื›ืŸ!

  • ืœื ืื™ืŸ ืฆื•ืจืš

1030 ืžืฉืชืžืฉื™ื ื”ืฆื‘ื™ืขื•. 106 ืžืฉืชืžืฉื™ื ื ืžื ืขื•.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”