Posts Bash and & or with if
Post
Cancel

Bash and & or with if

And

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ cat and_or.sh 
#!/bin/bash
test_and_or(){
    TEST="11"
    TEST2="22"
    if [ "$TEST" == "11" ] && [ "$TEST2" == "22" ] ;then
        echo "String Exist by And"
    fi

    if [ "$TEST" == "33" ] || [ "$TEST2" == "22" ] ;then
        echo "String Exist by Or"
    fi
}

test_and_or
1
2
3
$ ./and_or.sh
String Exist by And
String Exist by Or

1.3 Directory Exist

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ cat directory_ex.sh 
#!/bin/bash
test_dir_exist(){
    set -e 
    if [ -e "/home/jayleekr/workspace/00_codes/05_info_archive" ];then
        echo "DIR Exist"
        exit 1

    fi
}
test_fail(){
    mkdir /a
    echo "test_fail"
}
test_dir_exist
$ ./directory_ex.sh
DIR Exist

2. set

2.1 set -e

set -e 가 script 내에 실행되어있으면 해당 스크립트가 동작하는 환경은 script명령어가 error 를 발생하면서 죽었을때 다음 명령을 수행하지 않는다

3. exit

일반적으로 unix 에서는 0 은 성공, 1~255 는 error code 로 인식됨 인식되는 범위는 0~255 16bit $? 로 결과값을 확인 가능

1
2
3
4
5
6
7
$ cat test.sh
echo "hello"
exit 100
$ sh test.sh
hello
$ echo $?
100

4. eval

eval 뒤의 string arg 들을 command 로 실행하게 해줌 string 수준에서 최종 Command 조작 후 실행시 유용하다

5. array(list)

Bash 에서는 괄호로 Array를 표현가능하다 그 안에서 구분자는 아무래도 띄어쓰기(space bar) 이다

1
2
3
4
5
6
7
8
9
10
11
12
$ cat array_ex.sh
#!/bin/bash
lists=("a" b "c")
echo ${lists[1]}
echo ${lists[0]}
echo ${lists[3]}
echo ${lists[2]}
$ sh array_ex.sh
b
a

c

6. sed

sed Utility를 사용안해본사람은 있어도 한번만 사용한 사람은 없다 전해지는 전설의 레전드

7. while

필자는 while보다는 for문을 더 좋아하는 스타일이라 잘 쓰진않지만, 텍스트 파일로 부터 line 을 읽어들여 작업하는 용도로 좀 쓴다.

1
$ while read line; do git rm -r $line; done < remove.lst

8. for

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ cat for.sh 
#!/bin/bash

LISTS=("a" "b" "c") 

# Don't forget Brace!
echo ${LISTS[0]}
echo ${LISTS[1]}
echo ${LISTS[2]}
# Don't forget Brace!
for item in ${LISTS[@]}
do
    echo $item
done
$ ./for.sh
a
b
c
a
b
c

Appendix. References

This post is licensed under CC BY 4.0 by the author.