if [ 조건 ]; then
내용
fi
if [ 조건 ] ; then 내용 ; fi
else
elif
for
#!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