(์ฐธ์กฐ : https://chancoding.tistory.com/85)
bash : Bourne-Again Shell(ํ๋กฌํํธ : #, ๊ฒฝ๋ก : /bin/bash). ๊ฐ์ฅ ๋ํ์ ์ผ๋ก ์ฌ์ฉ.
sh : Bourne Shell(ํ๋กฌํํธ : $, ๊ฒฝ๋ก : /bin/sh)
csh : C Shell(ํ๋กฌํํธ : %, ๊ฒฝ๋ก : /bin/csh)
ksh : Kron Shell(ํ๋กฌํํธ : $, ๊ฒฝ๋ก : /bin/ksh)
tcsh : TENEX C Shell(ํ๋กฌํํธ : >, ๊ฒฝ๋ก : /bin/tcsh)
: ์๋ฒ๊ฐ ๋ค์ด๋์ด, ์๋ฒ ์ ์ฅ๊ณต๊ฐ์ด ํ๋๋ ๋จ์ ์์ง ์์ ๊ฒฝ์ฐ, ๋ก๊ทธ ํ์ผ์ด ์ ๋ฐ์ดํธ๊ฐ ์๋์ด ๊ด๋ จ ํ๋ก๊ทธ๋จ์ด ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ ๋์์ ๊ฒฝ์ฐ ์ด๋ด ๊ฒฝ์ฐ ๊ฐ๋จํ ์ ์คํฌ๋ฆฝํธ ์์ฑ ๋ฐ ์ฃผ๊ธฐ์ ์คํ์ผ๋ก ํด๊ฒฐํ ์ ์๋ค.
echo : ํ๋ฉด์ ๊ฐ์ ์ถ๋ ฅํด์ฃผ๋ ๋ช ๋ น์ด
๋ณ์ ์ ์ธ : ๋ณ์๋ช = value ( ํ์ ์ ๋ฐ๋ก ์ ์ธํ ํ์๋ ์๊ณ , int ๋ฅผ ์ ์ธํ ๊ฐ์์ ''๋ฅผ ๋ฃ์ด์ค๋ค.)
๋ฆฌ์คํธ ๋ณ์ ์ ์ธ : ๋ณ์๋ช =(๋ฐ์ดํฐ1๋ฐ์ดํฐ2๋ฐ์ดํฐ3...)
๋ฆฌ์คํธ ๋ณ์ ์ฌ์ฉ : ${๋ณ์๋ช [์ธ๋ฑ์ค๋ฒํธ]}
#!/bin/bash
arr = ("a" "b" "c") // ๋ณ์ ์ ์ธ
echo ${arr[1]} // $arr ๋ฐฐ์ด์ ๋ ๋ฒ์งธ ์ธ๋ฑ์ค์ ํด๋นํ๋ myspld ์ถ๋ ฅ
echo ${arr[@]} // $arr ๋ฐฐ์ด์ ๋ชจ๋ ๋ฐ์ดํฐ ์ถ๋ ฅ
echo ${arr[*]} // $arr ๋ฐฐ์ด์ ๋ชจ๋ ๋ฐ์ดํฐ ์ถ๋ ฅ
echo ${#arr[@]} // $arr ๋ฐฐ์ด์ ๋ฐฐ์ด ํฌ๊ธฐ ์ถ๋ ฅ
filelist=( $(ls) ) // ํด๋น ์ ์คํฌ๋ฆฝํธ ์คํ ๋๋ ํ ๋ฆฌ์ ํ์ผ ๋ฆฌ์คํธ๋ฅผ ๋ฐฐ์ด๋ก ๋ณ์ ์ ์ธ
echo ${filelist[*]} // $filelist ๋ชจ๋ ๋ฐ์ดํฐ ์ถ๋ ฅ
$$ : ์์ ํ๋ก์ธ์ค ๋ฒํธ (pid)
$0 : ์ ์คํฌ๋ฆฝํธ ์ด๋ฆ
$1~$9 : ๋ช
๋ น์ค ์ธ์
$* : ๋ชจ๋ ๋ช
๋ น์ค ์ธ์ ๋ฆฌ์คํธ
$# : ์ธ์์ ๊ฐ์
$? : ์ต๊ทผ ์คํํ ๋ช
๋ น์ด์ ์ข
๋ฃ ๊ฐ
expr : ์ซ์ ๊ณ์ฐ
1. expr ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ญ ์์ ๋ฐ์ดํ (`) ๋ฅผ ์ฌ์ฉํด์ผํ๋ค. ` ` ` ` ` ` `
2. ์ฐ์ฐ์ * ์ ๊ดํธ ( ) ์์๋ ์ญ ์ฌ๋์๋ฅผ ๊ฐ์ด ์ฌ์ฉํด์ผ ํ๋ค. \ \ \ \ \ \ (๋ถ์ฌ ์ด๋ค.)
3. ์ฐ์ฐ์์ ์ซ์, ๋ณ์, ๊ธฐํธ ์ฌ์ด์๋ space๋ฅผ ๋ฃ์ด์ผํ๋ค
if [ ์กฐ๊ฑด ]
then
๋ช
๋ น๋ฌธ // ์ด ๋ช
๋ น๋ฌธ์๋ ์ฐธ์ผ ๋
else
๋ช
๋ น๋ฌธ // ์ด ๋ช
๋ น๋ฌธ์๋ ๊ฑฐ์ง์ผ ๋
fi
๋ฌธ์1 == ๋ฌธ์2 // ๋ฌธ์ 1๊ณผ ๋ฌธ์ 2๊ฐ ์ผ์น
๋ฌธ์1 != ๋ฌธ์2 // ๋ฌธ์ 1๊ณผ ๋ฌธ์ 2๊ฐ ์ผ์นํ์ง ์๋๋ค.
-z ๋ฌธ์ // ๋ฌธ์๊ฐ null ์ด๋ฉด ์ฐธ(๊ฐ์ด ์์ผ๋ฉด true)
-n ๋ฌธ์ // ๋ฌธ์๊ฐ null ์ด ์๋๋ฉด ์ฐธ
<, > ๋ if ์กฐ๊ฑด ์ [[]]๋ฅผ ๋ฃ๋ ๊ฒฝ์ฐ ์ ์ ์๋ํ๊ธฐ๋ ํ์ง๋ง, ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์ ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ค.
๊ฐ1 -eq ๊ฐ2 //๊ฐ์ด ๊ฐ์(equal)
๊ฐ1 -ne ๊ฐ2 //๊ฐ์ด ๊ฐ์ง ์์(not equal)
๊ฐ1 -lt ๊ฐ2 //๊ฐ1์ด ๊ฐ2๋ณด๋ค ์์(less than)
๊ฐ1 -le ๊ฐ2 //๊ฐ1์ด ๊ฐ2๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์(less or equal)
๊ฐ1 -gt ๊ฐ2 //๊ฐ1์ด ๊ฐ2๋ณด๋ค ํผ(greater than)
๊ฐ1 -ge ๊ฐ2 //๊ฐ1์ด ๊ฐ2๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์(greater or equal)
-e ํ์ผ๋ช
//ํ์ผ์ด ์กด์ฌํ๋ฉด ์ฐธ
-d ํ์ผ๋ช
//ํ์ผ์ด ๋๋ ํ ๋ฆฌ๋ฉด ์ฐธ
-h ํ์ผ๋ช
//ํ์ผ์ด ์ฌ๋ณผ๋ฆญ ๋งํฌ ํ์ผ์ด๋ฉด ์ฐธ
-f ํ์ผ๋ช
//ํ์ผ์ด ์ผ๋ฐํ์ผ์ด๋ฉด ์ฐธ
-r ํ์ผ๋ช
//ํ์ผ์ด ์ฝ๊ธฐ ๊ฐ๋ฅํ๋ฉด ์ฐธ
-s ํ์ผ๋ช
//ํ์ผํฌ๊ธฐ๊ฐ 0์ด ์๋๋ฉด ์ฐธ
-u ํ์ผ๋ช
//ํ์ผ์ด set-user-id๊ฐ ์ค์ ๋๋ฉด ์ฐธ
-w ํ์ผ๋ช
//ํ์ผ์ด ์ฐ๊ธฐ ๊ฐ๋ฅ์ด๋ฉด ์ฐธ
-x ํ์ผ๋ช
//ํ์ผ์ด ์คํ ๊ฐ๋ฅ์ด๋ฉด ์ฐธ
ping : ๋ฒ์์ ์ฌ๋ฌ ๊ฐ์ง ์ปดํจํฐ๊ฐ ์ฐ๊ฒฐ๋์ด ์์ ๋
์ฐ๊ฒฐ๋ ํน์ ์ปดํจํฐ๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๋ ์ง,๊บผ์ ธ ์๋์ง, ๋น์ ์์ ์ผ๋ก ๋์ํ๋์ง ํ์ธํ๋ ๋ช
๋ น์ด
๋ฐ๋ณต๋ฌธ for ๊ธฐ๋ณธ ๊ตฌ๋ฌธ
for ๋ณ์ in ๋ณ์๊ฐ1 ๋ณ์๊ฐ2 ....
do
๋ช
๋ น๋ฌธ
done
while [ ์กฐ๊ฑด๋ฌธ ]
do
๋ช
๋ น๋ฌธ
done
์ฐธ๊ณ : https://probe29.tistory.com/47