ืชืกืจืืื 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. ืื -
ืกืงืจืืคืืื ืฉื ืฉืืจืช ืืคืงืืื ืื ืงืืืฆืืช ืฉื ืืืชื ืคืงืืืืช ืฉื ืืชื ืืืืื ืืืืงืืืช, ืืืกืืฃ ืืงืืฆืื ืืืืื ืืืชื ืืืืจื ืืฉืืชืคืช ืืืฉืื. ืืื ืขื ืืืช, ืชืืฆืืืช ืขืืืืช ืืฆืืืชืื ืืืืืืช ืืืืืช ืืขืืืช ืขืจื ืขืฆืืื ืื ืืฉืืฉ ืชืฉืืื ืืฆืืืชืื ืืืจืื. ืกืงืจืืคืืื ืื ืืจื ืจืืช ืขืืฆืื ืืืคืื ืคืขืืืืช ืฉืืืฆืขื ืืขืชืื ืงืจืืืืช ืืืืืืืืืืช.
ืื ืื ืื ืื ื ืืืืจืื ืขื ืฉืืจืช ืืคืงืืื, ืืื ืืืคืฉืจืช ืื ืืืฆืข ืืกืคืจ ืคืงืืืืช ืืืช ืืืช, ืืืืื ืืืชื ืขื ื ืงืืื-ืคืกืืง:
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
.
ื ืืกืืื ืืืคืขืื ืงืืืฅ ืกืงืจืืคื ืขื ืืจืฉืืืช ืืืืืจืืช ืืฆืืจื ืฉืืืื
ืืืื ื ืขืฉื ืืช ืืงืืืฅ ืืจ ืืคืขืื:
chmod +x ./myscript
ืขืืฉืื ืืืื ื ื ืกื ืืืฆืข ืืช ืื:
./myscript
ืืืืจ ืืืืจืช ืืืจืฉืืืช, ืืื ืขืืื ืืื ืฉืฆืจืื.
ืืจืฅ ืืืฆืืื ืืช ืกืงืจืืคื bash
ืคืื ืืืืขื
ืืื ืืืืคืืก ืืงืกื ืืืกืืฃ ืืื ืืงืก, ืืฉืชืืฉ ืืคืงืืื echo
. ืืืื ื ืฉืชืืฉ ืืืืข ืฉื ืขืืืื ืื ืื ืขืจืื ืืช ืืกืงืจืืคื ืฉืื ื, ืื ืืกืืฃ ืืกืืจืื ืื ืชืื ืื ืฉืืืฆืืืื ืืช ืืคืงืืืืช ืฉืืืจ ื ืืฆืืืช ืื:
#!/bin/bash
# our comment is here
echo "The current directory is:"
pwd
echo "The user logged in is:"
whoami
ืื ื ืื ืฉืงืืจื ืืืืจ ืืคืขืืช ืืกืงืจืืคื ืืืขืืืื.
ืคืื ืืืืขืืช ืืชืื ืกืงืจืืคื
ืืขืช ื ืืื ืืืฆืื ืชืืืืืช ืืกืืจ ืืืืฆืขืืช ืืคืงืืื echo
. ืื ืืื ื ืืืืข ืืืฆื ืืขืจืื ืงืืืฅ ืืืืฆืขืืช ืืื ืืื ืืงืก, ืื ืื ืื ืจืืืช ืืช ืืคืงืืื ืืขืืจ echo
, ืืื ื
ืฉืืืืฉ ืืืฉืชื ืื
ืืฉืชื ืื ืืืคืฉืจืื ืื ืืืืกื ืืืืข ืืงืืืฅ ืกืงืจืืคื, ืืืื ืชืืฆืืืช ืฉื ืคืงืืืืช, ืืฉืืืืฉ ืขื ืืื ืคืงืืืืช ืืืจืืช.
ืืื ืฉืื ืืืจ ืจืข ืืืืฆืืข ืคืงืืืืช ืืืืืืช ืืืื ืืืืกื ืืช ืชืืฆืืืช ืขืืืืชื, ืื ืืืคืฉืจืืืืช ืฉื ืืืฉื ืื ืืืืืืืช ืืืื.
ืืฉื ื ืฉื ื ืกืืืื ืฉื ืืฉืชื ืื ืฉื ืืชื ืืืฉืชืืฉ ืืื ื-bash scripts:
- ืืฉืชื ื ืกืืืื
- ืืฉืชื ื ืืฉืชืืฉ
ืืฉืชื ื ืกืืืื
ืืคืขืืื ืคืงืืืืช ืืขืืคืช ืฆืจืืืืช ืืขืืื ืขื ื ืชืื ื ืืขืจืืช ืืกืืืืื. ืืืืืื, ืื ื ืืื ืืืฆืื ืืช ืกืคืจืืืช ืืืืช ืฉื ืืืฉืชืืฉ ืื ืืืื:
#!/bin/bash
# display user home
echo "Home for the current user is: $HOME"
ืฉืืื ืื ืฉืื ื ืืืืืื ืืืฉืชืืฉ ืืืฉืชื ื ืืืขืจืืช $HOME
ืืืืจืืืืช ืืคืืืืช, ืื ืื ืืื ืข ืืืืขืจืืช ืืืืืช ืืืชื. ืื ืื ืฉืงืืจื ืื ืืชื ืืคืขืื ืืช ืืกืงืจืืคื ืฉืืืขืื.
ืฉืืืืฉ ืืืฉืชื ื ืกืืืื ืืกืงืจืืคื
ืืื ืื ืื ืืชื ืจืืฆื ืืืฆืื ืฉืื ืืืืจ? ืืืื ื ื ืกื ืืช ืื:
echo "I have $1 in my pocket"
ืืืขืจืืช ืชืืื ืกืืื ืืืืจ ืืืืจืืืช ืืืคืจืืช ืืืจืืืืช ืืชื ืื ืฉืืคื ืื ื ืืืฉืชื ื. ืืกืงืจืืคื ืื ืกื ืืืฆืื ืืช ืืขืจื ืฉื ืืฉืชื ื ืื ืืืืืจ. $1
. ืื ืื ืื ืฉืื ืื ื ืฆืจืืืื. ืื ืืขืฉืืช?
ืืืฆื ืืื, ืฉืืืืฉ ืืชื ืฉืืืื, ืงื ื ืืื, ืืคื ื ืกืืื ืืืืืจ ืืขืืืจ:
echo "I have $1 in my pocket"
ืืกืงืจืืคื ืืืฆืื ืืขืช ืืืืืง ืืช ืืฆืคืื.
ืฉืืืืฉ ืืจืฆืฃ ืืจืืื ืืื ืืืืฆืื ืกืืื ืืืืจ
ืืฉืชื ื ืืฉืชืืฉ
ืื ืืกืฃ ืืืฉืชื ื ืกืืืื, ืกืงืจืืคืืื ืฉื 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 ืืื ืืืืืืช ืืืืฅ ืืืืข ืืืคืื ืฉื ืืคืงืืืืช ืืืืงืฆืืช ืืืชื ืืืฉืชื ืื, ืื ืฉืืืคืฉืจ ืื ืืืฉืชืืฉ ืืืืืข ืื ืืื ืืงืื ืืงืืืฅ ืืกืงืจืืคื.
ื ืืชื ืืขืฉืืช ืืืช ืืฉืชื ืืจืืื.
- ืขื ืชื "`"
- ืืขืืจืช ืื ืืื
$()
ืืขืช ืฉืืืืฉ ืืืืฉื ืืจืืฉืื ื, ืืืืืจ ืื ืืืฉืชืืฉ ืืืจืืื ืืืืืช ืืืงืื ื-backtick. ืืคืงืืื ืืืืืช ืืืืืช ืืืงืคืช ืืฉื ื ืืืืงืื ืื ืืืื:
mydir=`pwd`
ืืืืฉื ืืฉื ืืื, ืืืชื ืืืืจ ืืชืื ืื:
mydir=$(pwd)
ืืืชืกืจืื, ืืกืืคื ืฉื ืืืจ, ืขืฉืื ืืืืจืืืช ืื:
#!/bin/bash
mydir=$(pwd)
echo $mydir
ืืืืื ืคืขืืืชื, ืืคืื ืฉื ืืคืงืืื pwd
ืืืฉืืจ ืืืฉืชื ื mydir
, ืืฉืจ ืชืืื ื, ืืืืฆืขืืช ืืคืงืืื echo
, ืืขืืืจ ืืงืื ืกืืื.
ืกืงืจืืคื ืฉืฉืืืจ ืืช ืชืืฆืืืช ืืคืงืืื ืืืฉืชื ื
ืคืขืืืืช ืืชืืืืืช
ืืื ืืืฆืข ืคืขืืืืช ืืชืืืืืช ืืงืืืฅ ืกืงืจืืคื, ื ืืชื ืืืฉืชืืฉ ืืื ืืื ืฉื ืืืืคืก $((a+b))
:
#!/bin/bash
var1=$(( 5 + 5 ))
echo $var1
var2=$(( $var1 * 2 ))
echo $var2
ืคืขืืืืช ืืชืืืืงื ืืชืกืจืื
ืื-ืื ืืื ื ืืงืจื
ืืชืจืืืฉืื ืืกืืืืื, ืื ื ืืจืฉ ืืฉืืื ืืืจืืืช ืืืฆืืข ืืคืงืืื. ืืืืืื, ืื ืขืจื ืืกืืื ืืืื ืืืืฉ, ืืฉ ืืืฆืข ืคืขืืื ืืืช, ืืืจืช ืืืจืช. ืื ืืฉืื ืืืจืื ืืืื ืืฆืืื, ืืืื ืืื ื ืืืงืจื ืืขืืืจ ืื ื 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
ืื ืื ืฉืงืืจื ืืืืจ ืืคืขืืช ืืกืงืจืืคื ืืื.
ืืืคืืฉ ืืฉืชืืฉืื
ืืื ืืฉืชืืฉื ื ืืคืงืืื 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
.
ืืคืขืืช ืกืงืจืืคื ืขื ืืื ื ืื-ืื-ืืืจ
ืืืื, ืืืื ื ืืฉืื ืื ืฉืื ืืช ืขืฆืื ื ืืืื ืชื ืืื ืงืฉืื ืืืชืจ. ืื ืื ืืชื ืฆืจืื ืืืืืง ืื ืชื ืื ืืื, ืืื ืืื? ืืืืืื, ืื ื ืืฆื ืืืฉืชืืฉ ืื ืืจืฉ, ืืฉ ืืืฆืื ืืืืขื ืืืช, ืื ืืชืงืืื ืชื ืื ืืืจ, ืืฉ ืืืฆืื ืืืืขื ืืืจืช ืืื ืืืื. ืืืฆื ืืื, ืชื ืืื ืืงืื ื ืื ืืขืืจื ืื ื. ืื ื ืจืื ืืื ืื:
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
ืื ื ืื ืฉืืคืงืืื ืืื ืชืคืืง.
ืืฉืืืืช ืืกืคืจืื ืืชืกืจืืืื
ืขืจื ืืฉืชื ื 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
ืืชืืฆืื ืืืืฆืืข ืืชืกืจืื, ืื ื ืืงืืืื ืืช ืืืืจืื ืืืืื.
ืืฉืืืืช ืืืจืืืืช ืืกืงืจืืคืืื
ืื ื ืชืืื ื ืืืช ืฉื ืืฉืืืืช ืืืจืืืืช ืฉืืืื ืืืืืืจ. ืืืืืจ, ืืืืคืจืืืจืื ">" ื-"<" ืืืืืื ืืืืืช ืืืจืืื ืขื ืงื ื ืืื ืืืืจื, ืืืจืช ืืกืงืจืืคื ืื ืืขืืื ืืจืืื, ืืืจืืช ืฉืื ืืืคืืขื ืืืืขืืช ืฉืืืื. ืืกืงืจืืคื ืืคืจืฉ ืืช ืืกืืื ">" ืืคืงืืื ืืืคื ืืืช ืคืื.
ืื ื ืจืืืช ืขืืืื ืขื ืืืคืจืืืจืื ืืื ืืงืื:
#!/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
ืืืื ืชืืฆืืืช ืืชืกืจืื.
ืืฉืืืืช ืืืชืจืื, ืืืืจื ื ืืจืง
ืฉืืื ืื ืฉืืกืงืจืืคื, ืืืจืืช ืฉืืื ืืืคืขื, ื ืืชื ืืืืจื:
./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
ืขืืฉืื ืืื ืขืืื ืืื ืฉืฆืจืื.
ืืฉืืืืช ืืืจืืืืช
ืชืืื ื ื ืืกืคืช ืฉื ืืืืคืจืืืจืื ">" ื-"<" ืืื ืืืืคื ืฉืื ืื ืคืืขืืื ืขื ืืืชืืืช ืจืืฉืืืช ืืงืื ืืช. ืขื ืื ืช ืืืืื ืชืืื ื ืื, ืืืื ื ืืื ืงืืืฅ ืืงืกื ืขื ืืชืืื ืืื:
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
ืื ืืคืขืืืื ืืืชื, ืืชืืจืจ ืฉืืืคื ืืื ืื ืืื - ืืืืช ืืงืื ื ืืขืช ืืืืื ืืืืืช ืืืืืื.
ืืฉืืืืช ืคืงืืืืช ืืืื ืืืฉืืืืช ืืืจืืืืช ืืงืืืฅ ืกืงืจืืคื
ืืคืงืืืืช ืืฉืืืื, ืืืชืืืช ืจืืฉืืืช ืงืื ืืช ืืืชืจ ืืืืชืืืช ืงืื ืืช. ืืฉืืืืช ืืืจืืืืช ืืื ื ืขืฉืืช ืขื ืืื ืืฉืืืืช ืงืืื ืืชืืืื 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 ืืื ืขืฆืื. ืืืืจ ืื ืืื ืชืจืืื ืฉื ืืืืง ืืจืืฉืื ืืกืืจื ืืืืื ืฉื 11 ืืืืจืื. ืื ืืชื ืจืืฆื ืืืืฉืื ืืืจ ืขืืฉืื, ืื ื ืจืฉืืื ืฉื ืืืงืืจืืช ืฉื ืืืืืจืื ืืืื. ืืืขืื ื ืืืืช, ืื ืฉืืชืจืืื ืฉืื ืงืจืืช ืื ืขืชื ืืืื ืืื.
Bash Script ืฆืขื ืืืจ ืฆืขื - ืืื ืื ืื ื ืืืืจืื ืขื ืืื ืืืชืืื ืืืฆืืจ ืกืงืจืืคืืื ืฉื bash, ืืฉืืืืฉ ืืืฉืชื ืื ื ืืฉื, ืืชืืืจืื ืงืื ืกืืจืืงืฆืืืช ืืืชื ืืช, ืืืฉืืืื, ืืฉืืืืืช ืฉื ืืกืคืจืื, ืืืจืืืืช, ืืืืื ืืืืข ืขื ืงืืฆืื.Bash Scripting ืืืง 2, Bash ืืืืืื - ืืื ืืชืืืืช ืชืืื ืืช ืืขืืืื ืขื ืืืืืืช for ื-while.Bash Scripting ืืืง 3, ืคืจืืืจืื ืืืคืฉืจืืืืช - ืืืืจ ืื ืืืงืืฉ ืืคืจืืืจืื ืืืคืชืืืช ืฉื ืฉืืจืช ืืคืงืืื ืฉื ืืชื ืืืขืืืจ ืืกืงืจืืคืืื, ืขืืืื ืขื ื ืชืื ืื ืฉืืืฉืชืืฉ ืืืื ืืฉื ืืชื ืืงืจืื ืืงืืฆืื.Bash Scripting ืืืง 4, ืงืื ืืคืื - ืืื ืื ืื ื ืืืืจืื ืขื ืืชืืจื ืงืืฆืื ืืขืืืื ืืืชื, ืขื ืงืื, ืคืื, ืฉืืืืืช, ืืจืื ืืคื ืืืช ืคืื.Bash Scripting ืืืง 5, Sighals & Jobs - ืืืืืจ ืืื ืืืงืืฉ ืืืืชืืช ืืื ืืงืก, ืขืืืืื ืืกืงืจืืคืืื, ืืฉืงืช ืกืงืจืืคื ืืชืืื ื ืช.Bash Scripting ืืืง 6, ืคืื ืงืฆืืืช - ืืื ืชืืืื ืืืืื ืขื ืืฆืืจื ืืฉืืืืฉ ืืคืื ืงืฆืืืช ืืกืงืจืืคืืื, ืขื ืคืืชืื ืกืคืจืืืช.Bash Scripting ืืืง 7, ืืืืฆืขืืช sed - ืืืืจ ืื ืขืืกืง ืืขืืืื ืขื ืขืืจื ืืืงืกื ืฉื sed stream.Bash Scripting ืืืง 8, ืืืืฆืขืืช awk - ืืืืจ ืื ืืืงืืฉ ืืชืื ืืช ืืฉืคืช ืขืืืื ืื ืชืื ืื awk.Bash Scripting ืืืง 9, ืืืืืืื ืจืืืืจืืื - ืืื ืชืืืื ืืงืจืื ืขื ืืฉืืืืฉ ืืืืืืืื ืจืืืืจืืื ืืชืกืจืืื bash.Bash Scripting ืืืง 10, ืืืืืืืช ืืขืฉืืืช - ืืคื ืืื ืฉืืืืช ืืขืืืื ืขื ืืืืขืืช ืฉื ืืชื ืืฉืืื ืืืฉืชืืฉืื ืืื ืฉืืื ืื ืืืืจ ืืืืกืง.Bash Scripting ืืืง 11, Expect Command - ืืืืจ ืื ืืืงืืฉ ืืืื Expect, ืฉืืืืฆืขืืชื ืืชื ืืืื ืืืคืื ืืื ืืจืืงืฆืื ืืืืืืืืืช ืขื ืืื ืขืืจ ืืื ืืจืืงืืืืืื. ืืคืจื, ืืืืืจ ืืชืกืจืืืื ืืฆืืคื ืืืืฆื ืื ืืงืืืืื ืืื ืืจืืงืฆืื ืขื ืชืกืจืืื bash ืืชืืื ืืืช ืืืจืืช.
ืื ื ืืืฉืืื ืฉืืื ืืืืจืื ืื ืืืจืื ืืกืืจืช ืืืืืจืื ืืื ืืื ืฉืืื ืืชืืืื ืืืืกืืกื ืืืืชืจ, ืืชืืื ืืืฉืชืืฉืื ืืื ืจืื, ืืืืื ืืืืจืื ืื ืืฉืืื ืจืฆืื ืืื ืืืื, ืื ืืชื ืืืืื ืืืืื ืืช ืืืชืงืื ืืกืงืจืืคืืื ืฉื ืฉืืจืช ืืคืงืืื ืฉื ืืื ืืงืก.
ืงืืจืืื ืืงืจืื! ืื ืื ื ืืืงืฉืื ืืืืจืืืื ืฉื ืชืื ืืช ืืฉืฉ ืืืืจ ืขื ืืื ืื ืืืืขื ืืคืกืืืช ืืฉืืืื, ืืฉืชืฃ ืกืืืืช, ืืื ืื ื ืืืืื ืืืชืจืฉืืืช ืืืื ืฉืื ืขืชื ืืชืื ืืช ืืชืกืจืื ืืจืืฉืื ืฉืืื.
ืจืง ืืฉืชืืฉืื ืจืฉืืืื ืืืืืื ืืืฉืชืชืฃ ืืกืงืจ.
ืืชืจืื ืืช ืฉืืจ ืกืืจืช ืืืืืจืื?
-
ืื!
-
ืื ืืื ืฆืืจื
1030 ืืฉืชืืฉืื ืืฆืืืขื. 106 ืืฉืชืืฉืื ื ืื ืขื.
ืืงืืจ: www.habr.com