# Test command
: expression이 true인지 false인지 확인할 때 사용한다. - true면 0, 나머지는 전부 false이다.
#두 개가 동일한 의미를 갖는다.
test expression
[expression]
var=5
test $var -gt 0 #(var>0)
echo $?
0
test $var -lt 0
echo $?
1
[$var -gt 0]
echo $?
1
#Integer Test
#File test
test -e filename #file이 존재하는지 확인
test -d filename #directory가 존재하는지 확인
test -f filename $regular file이(directory가 아닌 파일) 존재하는지 확인
#String Test
[-z var1]
[var1 = "korea"]
#Compound Commands
: 각 구조들은 reserved word로 시작하며, 이에 대응하는 reserved word로 끝난다.
- compgen -k로 keyword를 확인할 수 있으며, 조건문 형식에선 if가 fi에 대응되는 것을 확인할 수 있다.
#If Statements
#Single-line Syntax
if command; then command; fi
if command; then command; else command; fi
#Multi-line Syntax
if commands
then commands
else commands
fi
if commands
then commands
elif commands
then commands
else commands
fi
#--------------------------------------------------------------------------------------
if ls 2&>1 /dev/null; then echo yes; fi
#yes라고 출력되면 잘 소각된것임.
if false;then echo true; else echo false; fi
if test -n "kor"; then echo true; else echo false; fi
if [ -n "kor"]; then echo true; else echo false; fi
#test구문에 상당히 많이 쓰인다.
#Integer Testing
#! /bin/bash
if [$# -lt 2]
then
echo "usage: $0 file1 file2"
exit 1
fi
echo "program start"
exit 0
-> 빈칸에는
[$1 -gt 0] 이 들어가야 함을 알 수 있다.
: $op = "add" , $op = "sub" 순으로 들어감을 확인할 수 있다.
1) 만약 parameter의 숫자가 1개가 아니면 처음 구문을 실행한다.
2) parameter가 한개고, 이게 file이면 $file is a file이라고 출력하며, $file이 directory라면 directory라고 출력한다.
: .bashrc가 존재하면 파일을 찾는 것이고, 없으면 $Home/bin을 path에 추가한다.
-> Home/bin에는 리눅스의 가장 필수적인 실행파일들을 모아두고 있다.
#Case Statement
- 다중 선택에 기초한 case statement가 존재한다.
1) 각 pattern은 ) 로 끝난다.
2) 각 block은 ;; 로 끝난다.
3) 모든 case block은 "esac"으로 끝이 난다.
case word in
pattern )
commands ;;
pattern )
commands ;;
esac
read -p "Enter the name of an animal:" Animal
echo -n "the $Animal has.."
case $Animal in
horse)
echo -n 4 ;;
kangaroo)
echo -n 2 ;;
*) #defualt의미
echo -n "an unkwown number of" ;;
esac
echo "legs"
EX1)
-> filename이 각각의 wildcard와 매칭된다면 어떤 파일인지 출력한다.
: 각각의 pattern은 wildcard를 포함할 수 있고, multiple pattern은 |로 리스팅 될 수 있다.
EX2)
: hidden filed이 있다면 ls -a 옵션으로 출력하고, 그냥 출력하고 싶으면 N을 입력하여 ls 로 출력한다.
'Computer Science > OpenSource+Git' 카테고리의 다른 글
Pipe and Shell Scripts (0) | 2021.12.11 |
---|---|
Linux Command and Redirection (0) | 2021.12.11 |
shell command 확장과 명령어 치환 (0) | 2021.12.11 |
Shell Environment (0) | 2021.12.11 |
Git Branch Command (0) | 2021.10.24 |