Linux/Shell script

linux JAVA 설치 방법 및 Shell script + if문

개폰지밥 2021. 9. 3. 11:37
반응형

java_install.sh
0.00MB

l 자바 설치 방법

(자바 설치 스크립트도 아래에 만들어 놓긴했습니다 😊)

자바 설치 확인

- 첫번째 javac 이용

[fido@localhost script]$ javac -version

-bash: javac: command not found

 

- 두번째 rpm 이용

[fido@localhost script]$ rpm -qa | grep jdk

 

설치 가능한 java list 확인

[fido@localhost script]$ yum list java*jdk-devel

 

자바 설치

[fido@localhost script]$ yum install -y java-1.8.0-openjdk-devel.x86_64

You need to be root to perform this command.

 root로 변경 후 설치

 [root@localhost script]# yum install -y java-1.8.0-openjdk-devel.x86_64

  

자바 설치 확인

[root@localhost script]# javac -version

[root@localhost script]# rpm -qa java*jdk-devel

 

환경변수 설정

[root@localhost java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64]# pwd

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64

 

JAVA 환경변수 적용

vi /etc/profile

source /etc/profile

 

적용확인

echo $JAVA_HOME

 

자바 설치 스크립트

vi 2_java_install.sh
구현하고 싶은 내용 구현 아이디어 내기
JAVA 설치 JAVA 설치 확인 후 JAVA 설치
설치하고 싶은 버전 받아오기
설치 후 /etc/profilePATH도 자동 추가
쉘 스크립트 내용
#!/bin/bash
#install_check
rpm -qa | grep jdk >> result.txt
 
FILE="result.txt"
 
if [ -s $FILE ]; then
        echo "you already installed java"
else
        echo "start to install javal"
        yum list java*jdk-devel
        echo -n "Enter wanna install java version: "
        read JAVA_VERSION
        yum install -y $JAVA_VERSION
        javac -version
fi
결과
[설치되어있을 때 결과값]
[root@localhost script]# ./2_java_install.sh

you already installed java
[root@localhost script]# ls
1_user_folder_create.sh  2_java_install.sh  result.txt
[설치되어있을 때 결과값]
기타사항
설치 후 /etc/profilePATH 자동 추가 구현해야함.

 

쉘 스크립트 문법

조건문

test문은 쉘 스크립트에서 조건문을 검사하고 결과를 반환하는데 사용됩니다.

일반적으로 if문이나 while 문을 이용하여 문자열비교, 산술비교, 파일 비교 등을 수행합니다.

test문의 사용법은 다음과 같습니다.

test expression
또는
expression

조건의 결과가 참(true)인 경우는 0, 거짓(false)인 경우는 0이 아닌 값(통상 1)을 반환합니다.

 

문자열 검사

비교 설명
str1 = str2 문자열이 같으면 true, 틀리면 false 반환
(연산자 사이에 공백문자가 있어야 함)
str1! = str2 문자열이 다르면 true, 같으면 false 반환
(연산자 사이에 공백문자가 있어야 함)
str 문자열 길이가 0이 아니면 true, 0이면 false 반환
-n str 문자열 길이가 0이 아니면 true, 0이면 false 반환
-z str 묹열 길이가 0이면 true, 0이 아니면 false 반환

 

산술 비교

비교 설명 비고
A -eq B AB값이 같으면 true 반환 equl then
A -ne B Ab값이 다르면 true를 반환 No equal to
A -gt B AB보다 크면 true를 반환 Greater than
A -ge B AB보다 크거나 같으면 true를 반환 Greater than or equal to
A -lt B A B보다 작으면 true를 반환 Less than
A -le B A B보다 작거나 같으면 true를 반환 Less than or equal to

ð  모든 연산자는 조건식 좌우 사이에 공백문자가 있어야 합니다.

 

파일 검사

검사 결과
-d file 디렉토리파일이면 true 반환
-f file 일반파일이면 true 반환

등등 생략

 

논리 조건 연산

논리 연산자 설명
! Not 연산자 : 결과에 대해 반대값을 반환
-a And 연산자 : 결과가 모두 참이어야 true를 반환
-o Or 연산자: 결과가 하나라도 참이면 true를 반환
() 우선순위 연산

 

l  If~then~fi

조건이 참인 경우에만 실행되는 구문

if 조건
then
      명령1
fi

 

l  If~then~else~fi

만약 ~라면 ~이고, 아니라면 ~입니다와 같이 결과 출력

if 조건
then
      명령1
else
      명령2
fi

 

l  if~then~elif~else

여러 가지 조건을 처리하기 위한 구문.

if 조건
then
      명령1
elif 조건
then
      명령2
….
else
      명령3
fi

 예시

#!/bin/bash
female=30
male=20
if [ $male -lt $female ]
then
        echo female
elif [ $male -eq $female ]
then
        echo same
else
 

 

결과

[fido@localhost script]$ ./if_test.sh
female

에러

[fido@localhost script]$ ./if_test.sh
./if_test.sh: line 4: [: missing `]'
./if_test.sh: line 7: [20: command not found
male

->  띄어쓰기를 꼭 해야한다.

 

l  read

read 명령어를 사용하면 쉘 스크립트가 키보드에서 입력된 값을 얻을 수 있다.

반응형