
if [ 조건 ]; then
내용
fi
if [ 조건 ] ; then 내용 ; fi
else
elif



for
변수=$(stdout) 으로 대입 시, spacebar 로 sep 되기 때문에 매우 주의할 것!!#!bin/bash
for line in ${RUNNER}; do
echo $line
done
==== 출력 ====
mark@10.17.4.13:/home/downloads
mark@10.178.4.13:/shared/downloads
mark@10.175.4.13:/shared/downloads
#!bin/bash
for line in "${RUNNER}"; do
echo $line
done
==== 출력 ====
mark@10.17.4.13:/home/downloads mark@10.178.4.13:/shared/downloads mark@10.175.4.13:/shared/downloads

#!/bin/bash
# Display message 5 times
for ((i = 0 ; i < 5 ; i++)); do
echo "Welcome $i times."
done
# === 한 줄 명령 === #
$ for ((i=0;i<3;i++)); do echo "Welcome $i times."; done
#!/bin/bash
num=5
while [ $num -ge 0 ]
do
echo $num
((num--))
done
#!/bin/bash
num=5
while true
do
echo $num
((num--))
done
참고: https://hand-over.tistory.com/32
-z: 문자열 길이 = 0 true
-n: 문자열 길이 !=0 true

=: 문자열 같으면 true

!=: 문자열이 다르면 true=~: 문자열 중 일부 포함 시 true$ VAR=`locale | grep "^LANG="`
$ if [[ $VAR =~ "ko" ]] ; then echo "VAR in KO " ; fi
위와 같음
if [[ $VAR =~ "ko" ]]
then
echo "VAR in KO"
fi
<: 사전적 비교>: 사전적 비교
! : 반대-d: 디렉토리면 true-d는 디렉토리인지?


-f: 'regular 파일' 시 true

-e: 파일이 존재하면 true[ -e FILE ] && rm FILE
readlink -e LINK_FILE을 사용하면, symbolic link가 가리키는 찐 파일의 절대경로를 STDOUT으로 출력한다.

-c: 파일이 존재, character special 파일이면 true-b: 파일 존재, block special 파일 시 true-p: 파일 존재, {named,unnamed}pipe 이거나 <( ...) 면 true-S: 파일 존재, socket 시 true-L: 파일 존재, symlink 시 true-h: 파일 존재, symlink 시 true-g: 파일 존재, sgid bit 셋 시 true-u: 파일 존재, suid bit 셋 시 true-k: 파일 존재, sticky bit 셋 시 true-r: 파일 존재, reable true-w: 파일 존재, writable true-x: 파일 존재, executable true-O: 파일 존재, uid가 같으면 true-G: 파일 존재, gid가 같으면 true-N: 파일 존재, 마지막에 read 한뒤로 modify 됬으면 true-s: 파일 존재, 사이즈가 0보다 크면 true-t <fd>: FD가 존재하고 현재 터미널에 연결되어 있으면 trueFILE1 -nt FILE2: FILE1이 FILE2보다 수정시간이 newer면 trueFILE1 -ot FILE2: FILE1이 FILE2보다 수정시간이 older면 trueFILE1 -ef FILE2: FILE1, FILE2가 서로 hardlink 되있으면 true| 부호 | 뜻 | C style | return | 예제 |
|---|---|---|---|---|
-eq | equal | == | 0 (true) 1 (false) | if [ $NUM1 -eq $NUM2 ]; then ... |
-ne | not equal | != | 0 (true) 1 (false) | if [ $NUM1 -ne $NUM2 ]; then ... |
-le | less equal | <= | 0 (true) 1 (false) | if [ $NUM! -le $NUM2 ]; then ... |
-ge | greater equal | >= | 0 (true) 1 (false) | if [ $NUM! -ge $NUM2 ]; then ... |
-lt | less than | < | 0 (true) 1 (false) | if [ $NUM! -lt $NUM2 ]; then ... |
-gt | greater tan | > | 0 (true) 1 (false) | if [ $NUM! -gt $NUM2 ]; then ... |
-eq: 정수 비교해 같으면 true

==: 정수 비교해 같으면 true[ 조건식A ] && [ 조건식B ]: 조건식 A true, 조건식 B true 일때 동작
';' 로 연결하면 무조건 실행된다.

-a: 조건식 내부[ 조건식A -a 조건식B ]: 조건식 A와 B 모두 True 시 True (&&)
||: 조건식 외부
-o: 조건식 내부[ 조건식A -o 조건식B ]: 조건식 A와 B 둘 중 하나만 True 시 True (||)

-v : 변수 존재 test

