*서브쉘 실행
./test.sh
*쉘 자체 실행
. test.sh
source test.sh
시스템 변수와 로컬변수가 충돌 할 경우 서브쉘로 돌려주는 것이 좋다.
예를 들어...아래와 같은 shell파일이 있다고 하면...
test.sh
#!/bin/bash
HOME=/home/aiadm
echo $HOME
test.sh을 실행하기 전에 echo $HOME 입력했을 때
/home/test 였을 경우...
./test.sh(서브쉘로 실행)를 실행한 후에 $HOME 환경변수는 바뀌지 않는다.
. test.sh(쉘 자체를 실행)를 실행한 후에 $HOME 환경변수는 변경되며...환경변수가 변경될 수 있기 때문에 위험하다.
1) If문 사용하기 :
#!/bin/bash
if pwd
then
echo pwd command exists
fi
if mypwd
then
echo mypwd exists
fi
if cat /etc/passwd
then echo cat exists
fi
if...then...fi
2) if else문 사용하기
#!/bin/bash
read -p "Input User Name : " name
if grep $name /etc/passwd #입력받은 name값이 /etc/passwd 밑에 있으면
then echo $name exists!!
else echo $name does not exist
fi
exit 0
if...then....else..fi
3) if 조건문을 따로 분리할 경우 :
#!/bin/bash
read -p "Input User Name : " name
grep $name /etc/passwd
if (($? == 0 )) # 이전 조건에 에러가 없을 경우
then echo $name exists!!
else echo $name does not exist
fi
exit 0
4) test 명령어 사용하기 :
#!/bin/bash
value="Apple"
if test $value
then echo Value : $value
else
echo value is empty
fi
exit 0
5) 숫자 비교 테스트
n1 -eq n2
=> n1과 n2가 같은지 검사함
n1 -ne n2
=> n1과 n2가 같지 않은지 검사함
n1 -ge n2
=> n1이 n2보다 크거나 같은지 검사함
n1 -gt n2
=> n1이 n2보다 큰지 검사함
n1 -le n2
=> n1이 n2보다 작거나 같은지 검사함
n1 -lt n2
=> n1이 n2보다 작은지 검사함
'Linux Shell Programming' 카테고리의 다른 글
Linux 명령어(쉘 프로그래밍) - 예제 - 반복문(for, while), 구구단 (0) | 2018.01.09 |
---|---|
Linux 명령어(쉘 프로그래밍) - 예제 (파일 또는 디렉터리 여부 확인 + Digit Count) (0) | 2018.01.09 |
Linux 명령어(쉘 프로그래밍) - 예제(2자리 연산, 인자 받기, 패스워드가 *로 찍히게 하기) (0) | 2018.01.08 |
Linux 명령어(쉘 프로그래밍) - 예제(숫자 Integer 계산, Shell로 인자 넘기기) (0) | 2018.01.08 |
Linux 명령어 (쉘 프로그래밍) - 환경변수 추가, 서브쉘로 실행 등... (0) | 2018.01.08 |